Я хочу обновить TableA со значениями из TableB на ночной основе. Прямо сейчас, я пытаюсь сделать это с помощью SSIS 2005, используя Task Script с SQL в нем. Каждый раз, когда я пытаюсь сделать обновление таким образом, я получаю ошибку тайм-аута.Значения таблицы обновления SSIS из другой таблицы
Есть ли лучший способ сделать это в SSIS?
Текущая информация ниже:
Public Sub Main()
Const Component_Name As String = "Updating TableA Data"
Const Conn_String As String = "Data Source=DB_A;Initial Catalog=TableA;Integrated Security=SSPI;"
Const sql_Emp As String = "Update TableA Set Contract = c.License_No, SEIN = convert(varchar, c.Lic_Exp_Date, 101) " _
& "From Server.DB_B.dbo.TableB c Inner Join TableA b on " _
& "rtrim(ltrim(c.business_lic)) = rtrim(ltrim(cast(b.Account_Key as varchar(14)))) " _
& "Where c.Lic_Exp_Date = (select Max(Lic_Exp_Date) From Server.DB_B.dbo.TableB " _
& "Where rtrim(ltrim(business_lic)) = rtrim(ltrim(cast(b.Account_Key as varchar(14))))) " _
& "and convert(varchar, c.Lic_Exp_Date, 101) <> convert(varchar, b.SEIN, 101)"
Dim con As SqlConnection = New SqlConnection(Conn_String)
Try
Dts.Log("Opening DB Connection: " & con.ConnectionString, 0, Nothing)
con.Open()
Dim duh As New SqlCommand(sql_Emp, con)
duh.ExecuteNonQuery()
con.Close()
Dts.Log(String.Format(Component_Name), 0, Nothing)
Dts.Events.FireInformation(0, Component_Name, String.Format("TableA Data Updating"), "", 0, True)
Dts.TaskResult = Dts.Results.Success
Catch ex As Exception
Dts.Events.FireError(0, Component_Name, ex.Message, "", 0)
Dts.Log("Exception detected: " & ex.ToString, 0, Nothing)
Dts.TaskResult = Results.Failure
End Try
End Sub
@Joel Coehoorn: WOW! Это полностью ДУМАЕТ, как я это делал !!! Вы - ниндзя SQL! Благодаря! Я также очень ценю ноты внизу. Вы не только задали мне ответ, но и дали мне информацию, чтобы ускорить мои будущие запросы/обновления, обучая меня. Вы действительно хороший человек! – JFV
Можете ли вы поделиться грубыми временами для обеих версий? Мне любопытно узнать, какое улучшение. –
Прошло около 2 минут и 20 секунд с моим исходным кодом. Теперь это занимает 3 секунды. Благодаря! – JFV