| 
                
Please start any new threads on our new 
    site at https://forums.sqlteam.com.  We've got lots of great SQL Server
    experts to answer whatever question you can come up with. 
    
        | 
                
                    | 
                            
                                | Author | Topic |  
                                    | SomethingStupidStarting Member
 
 
                                        3 Posts | 
                                            
                                            |  Posted - 2008-05-06 : 11:57:44 
 |  
                                            | hiI use DTS to copy data from Sqlserver to MYSQL. For MySQL db connection , mysql odbc driver is used and also i'm logging queries that run over odbc. When i try to execute DtsDatapumptask from my visual basic activex DLL , it runs too slowly . I've looked query logs passing over mysql odbc and i've seen "select * from [destination_table]" log record before insert logs.that's the problem because destination table has more than two hundred thousand rows.Why is DTS selecting all record from destination just before import?How can i solve this problem ? Thanks and sorr for my poor english |  |  
                                    | rmiaoMaster Smack Fu Yak Hacker
 
 
                                    7266 Posts | 
                                        
                                          |  Posted - 2008-05-06 : 21:32:34 
 |  
                                          | How did you build package? Has such code you mentioned in it? |  
                                          |  |  |  
                                    | SomethingStupidStarting Member
 
 
                                    3 Posts | 
                                        
                                          |  Posted - 2008-05-07 : 04:16:58 
 |  
                                          | here is the vb code---------------------------------------------Set oStep = goPackage.Steps.New        oStep.Name = "Copy Data from Results to `webaraba`.`temp_cached_pages` Step"        oStep.Description = "Copy Data from Results to `webaraba`.`temp_cached_pages` Step"        oStep.ExecutionStatus = 1        oStep.TaskName = "Copy Data from Results to `webaraba`.`temp_cached_pages` Task"        oStep.CommitSuccess = False        oStep.RollbackFailure = False        oStep.ScriptLanguage = "VBScript"        oStep.AddGlobalVariables = True        oStep.RelativePriority = 3        oStep.CloseConnection = False        oStep.ExecuteInMainThread = True        oStep.IsPackageDSORowset = False        oStep.JoinTransactionIfPresent = False        oStep.DisableStep = False        oStep.FailPackageOnError = True        goPackage.Steps.Add oStepSet oStep = NothingCall Task_Sub1(goPackage, visitId)Public Sub Task_Sub1(ByVal goPackage As Object, Optional ByVal visitId As Long = -1, Optional ByVal visitTime As Date)Dim oTask As DTS.TaskDim oLookup As DTS.LookupDim oCustomTask1 As DTS.DataPumpTask2Set oTask = goPackage.Tasks.New("DTSDataPumpTask")Set oCustomTask1 = oTask.CustomTask        oCustomTask1.Name = "Copy Data from Results to `webaraba`.`temp_cached_pages` Task"        oCustomTask1.Description = "Copy Data from Results to `webaraba`.`temp_cached_pages` Task"        oCustomTask1.SourceConnectionID = 1        If visitId <> -1 Then            oCustomTask1.SourceSQLStatement = "SELECT * FROM CACHED_PAGES WHERE VISIT_ID > " & visitId        Else            oCustomTask1.SourceSQLStatement = "SELECT * FROM CACHED_PAGES WHERE VISIT_TIME >= '" & visitTime & "'"        End If        oCustomTask1.DestinationConnectionID = 2        If visitId <> -1 Then            oCustomTask1.DestinationObjectName = "`webaraba`.`cached_pages`"        Else            oCustomTask1.DestinationObjectName = "`webaraba`.`temp_cached_pages`"        End If        oCustomTask1.ProgressRowCount = 1000        oCustomTask1.MaximumErrorCount = 0        oCustomTask1.FetchBufferSize = 1        oCustomTask1.UseFastLoad = True        oCustomTask1.InsertCommitSize = 0        oCustomTask1.ExceptionFileColumnDelimiter = "|"        oCustomTask1.ExceptionFileRowDelimiter = vbCrLf        oCustomTask1.AllowIdentityInserts = False        oCustomTask1.FirstRow = 0        oCustomTask1.LastRow = 0        oCustomTask1.FastLoadOptions = 2        oCustomTask1.ExceptionFileOptions = 1        oCustomTask1.DataPumpOptions = 0        Call oCustomTask1_Trans_Sub1(oCustomTask1)                                goPackage.Tasks.Add oTaskSet oCustomTask1 = NothingSet oTask = NothingEnd SubPublic Sub oCustomTask1_Trans_Sub1(ByVal oCustomTask1 As Object)        Dim oTransformation As DTS.Transformation2        Dim oTransProps As DTS.Properties        Dim oColumn As DTS.Column        Set oTransformation = oCustomTask1.Transformations.New("DTS.DataPumpTransformCopy")                oTransformation.Name = "DirectCopyXform"                oTransformation.TransformFlags = 63                oTransformation.ForceSourceBlobsBuffered = 0                oTransformation.ForceBlobsInMemory = False                oTransformation.InMemoryBlobSize = 1048576                oTransformation.TransformPhases = 4                                Set oColumn = oTransformation.SourceColumns.New("VISIT_ID", 1)                        oColumn.Name = "VISIT_ID"                        oColumn.Ordinal = 1                        oColumn.Flags = 32784                        oColumn.Size = 0                        oColumn.DataType = 131                        oColumn.Precision = 18                        oColumn.NumericScale = 0                        oColumn.Nullable = False                                        oTransformation.SourceColumns.Add oColumn                Set oColumn = Nothing                Set oColumn = oTransformation.SourceColumns.New("VISIT_TIME", 2)                        oColumn.Name = "VISIT_TIME"                        oColumn.Ordinal = 2                        oColumn.Flags = 24                        oColumn.Size = 0                        oColumn.DataType = 135                        oColumn.Precision = 0                        oColumn.NumericScale = 0                        oColumn.Nullable = False                                        oTransformation.SourceColumns.Add oColumn                Set oColumn = Nothing                Set oColumn = oTransformation.SourceColumns.New("PAGE_URL", 3)                        oColumn.Name = "PAGE_URL"                        oColumn.Ordinal = 3                        oColumn.Flags = 8                        oColumn.Size = 350                        oColumn.DataType = 129                        oColumn.Precision = 0                        oColumn.NumericScale = 0                        oColumn.Nullable = False                                        oTransformation.SourceColumns.Add oColumn                Set oColumn = Nothing                Set oColumn = oTransformation.SourceColumns.New("PAGE_CONTENT", 4)                        oColumn.Name = "PAGE_CONTENT"                        oColumn.Ordinal = 4                        oColumn.Flags = 232                        oColumn.Size = 0                        oColumn.DataType = 129                        oColumn.Precision = 0                        oColumn.NumericScale = 0                        oColumn.Nullable = True                                        oTransformation.SourceColumns.Add oColumn                Set oColumn = Nothing                Set oColumn = oTransformation.SourceColumns.New("PAGE_SIZE", 5)                        oColumn.Name = "PAGE_SIZE"                        oColumn.Ordinal = 5                        oColumn.Flags = 24                        oColumn.Size = 0                        oColumn.DataType = 131                        oColumn.Precision = 18                        oColumn.NumericScale = 0                        oColumn.Nullable = False                                        oTransformation.SourceColumns.Add oColumn                Set oColumn = Nothing                Set oColumn = oTransformation.SourceColumns.New("NEXT_VISIT_TIME", 6)                        oColumn.Name = "NEXT_VISIT_TIME"                        oColumn.Ordinal = 6                        oColumn.Flags = 120                        oColumn.Size = 0                        oColumn.DataType = 135                        oColumn.Precision = 0                        oColumn.NumericScale = 0                        oColumn.Nullable = True                                        oTransformation.SourceColumns.Add oColumn                Set oColumn = Nothing                Set oColumn = oTransformation.DestinationColumns.New("VISIT_ID", 1)                        oColumn.Name = "VISIT_ID"                        oColumn.Ordinal = 1                        oColumn.Flags = 24                        oColumn.Size = 0                        oColumn.DataType = 131                        oColumn.Precision = 18                        oColumn.NumericScale = 0                        oColumn.Nullable = False                                        oTransformation.DestinationColumns.Add oColumn                Set oColumn = Nothing                Set oColumn = oTransformation.DestinationColumns.New("VISIT_TIME", 2)                        oColumn.Name = "VISIT_TIME"                        oColumn.Ordinal = 2                        oColumn.Flags = 24                        oColumn.Size = 0                        oColumn.DataType = 135                        oColumn.Precision = 0                        oColumn.NumericScale = 0                        oColumn.Nullable = False                                        oTransformation.DestinationColumns.Add oColumn                Set oColumn = Nothing                Set oColumn = oTransformation.DestinationColumns.New("PAGE_URL", 3)                        oColumn.Name = "PAGE_URL"                        oColumn.Ordinal = 3                        oColumn.Flags = 104                        oColumn.Size = 0                        oColumn.DataType = 129                        oColumn.Precision = 0                        oColumn.NumericScale = 0                        oColumn.Nullable = True                                        oTransformation.DestinationColumns.Add oColumn                Set oColumn = Nothing                Set oColumn = oTransformation.DestinationColumns.New("PAGE_CONTENT", 4)                        oColumn.Name = "PAGE_CONTENT"                        oColumn.Ordinal = 4                        oColumn.Flags = 104                        oColumn.Size = 1                        oColumn.DataType = 129                        oColumn.Precision = 0                        oColumn.NumericScale = 0                        oColumn.Nullable = True                                        oTransformation.DestinationColumns.Add oColumn                Set oColumn = Nothing                Set oColumn = oTransformation.DestinationColumns.New("PAGE_SIZE", 5)                        oColumn.Name = "PAGE_SIZE"                        oColumn.Ordinal = 5                        oColumn.Flags = 24                        oColumn.Size = 0                        oColumn.DataType = 131                        oColumn.Precision = 18                        oColumn.NumericScale = 0                        oColumn.Nullable = False                                        oTransformation.DestinationColumns.Add oColumn                Set oColumn = Nothing                Set oColumn = oTransformation.DestinationColumns.New("NEXT_VISIT_TIME", 6)                        oColumn.Name = "NEXT_VISIT_TIME"                        oColumn.Ordinal = 6                        oColumn.Flags = 120                        oColumn.Size = 0                        oColumn.DataType = 135                        oColumn.Precision = 0                        oColumn.NumericScale = 0                        oColumn.Nullable = True                                        oTransformation.DestinationColumns.Add oColumn                Set oColumn = Nothing        Set oTransProps = oTransformation.TransformServerProperties                        Set oTransProps = Nothing        oCustomTask1.Transformations.Add oTransformation        Set oTransformation = NothingEnd Sub |  
                                          |  |  |  
                                    | rmiaoMaster Smack Fu Yak Hacker
 
 
                                    7266 Posts | 
                                        
                                          |  Posted - 2008-05-07 : 14:46:54 
 |  
                                          | Looks like you run two 'select * ...' in the package. Did you try with import/export db objects wizard? |  
                                          |  |  |  
                                    | SomethingStupidStarting Member
 
 
                                    3 Posts | 
                                        
                                          |  Posted - 2008-05-07 : 15:46:12 
 |  
                                          | no, code does not run two selects . It prefers one of two from paramaters. Also I've tried the wizard.It's slow too.Again the same way : DTS tries to "select * from" destination table.Why why why?..... |  
                                          |  |  |  
                                    | sdidevStarting Member
 
 
                                    1 Post | 
                                        
                                          |  Posted - 2008-05-28 : 12:58:21 
 |  
                                          | I've experienced the slowness issue you mentioned (DTS & MySQL) - both in external application and using the DTS Wizard.  I suspect you might have a similar issue, here is what I did:Change the default database engine for MySQL from InnoDB (or other) to MyISAM - I think you will see a huge improvement in speed.  I just stumbled on this problem today myself, and my application with MySQL allows me to make this change without issue.Hope this helps. |  
                                          |  |  |  
                                |  |  |  |  |  |