Hallo Zusammen,
im Rahmen einer Datenbankmigration habe ich das Problem, dass in einem Job Tabellen gefüllt werden sollen (mit Hilfe eines Cursors)- siehe Code Beispiel vom MS SQL Servers 2005 auf den MS SQL Server 2008. dieser Job läuft auf dem alten System max. 20 min. Nach Übernahme auf den neuen Server dauert er länger als 12 Stunden. Trotzdem die Tabellen 1:1 übernommen wurden, sehen die Ablaufpläne unterschiedlich aus.
Weiß hier jemand, wie man das anpassen/ändern kann ?
Beste Grüße
im Rahmen einer Datenbankmigration habe ich das Problem, dass in einem Job Tabellen gefüllt werden sollen (mit Hilfe eines Cursors)- siehe Code Beispiel vom MS SQL Servers 2005 auf den MS SQL Server 2008. dieser Job läuft auf dem alten System max. 20 min. Nach Übernahme auf den neuen Server dauert er länger als 12 Stunden. Trotzdem die Tabellen 1:1 übernommen wurden, sehen die Ablaufpläne unterschiedlich aus.
Weiß hier jemand, wie man das anpassen/ändern kann ?
Beste Grüße
Code:
DECLARE @V_CR_Number char(11); DECLARE @V_CR_Subnumber char(4); DECLARE @V_Count int; DECLARE @V_n Int -- Org_ID DECLARE @V_MP_Number char(6); -- CR DELETE OSW.[tbl_CR_Involvement_Analysis_Test] set @V_n = 0 DECLARE curCR_OSW_Involvement CURSOR FORWARD_ONLY FOR select CR_Number, CR_Subnumber from DWH.tbl_CR ORDER BY CR_Number, CR_Subnumber; OPEN curCR_OSW_Involvement; FETCH NEXT FROM curCR_OSW_Involvement INTO @V_CR_Number, @V_CR_Subnumber; WHILE @@FETCH_STATUS = 0 BEGIN set @V_n = 0 WHILE @V_n < 120 -- zur Zeit Org_ID 1 bis 53 BEGIN set @V_n = @V_n + 1; SELECT @V_Count = COUNT(*) FROM OSW.[tbl_CR_Involvement_Analysis] WHERE [CR_Number] = @V_CR_Number AND [CR_Subnumber] = @V_CR_Subnumber AND [Org_ID] = @V_n; IF @V_Count = 0 BEGIN INSERT INTO OSW.[tbl_CR_Involvement_Analysis_Test] ([active] ,[CR_Number] ,[CR_Subnumber] ,[Org_ID] ,[Ins_Date] ,[Ins_User]) VALUES (1, @V_CR_Number, @V_CR_Subnumber, @V_n, GETDATE(), 'Script') END END FETCH NEXT FROM curCR_OSW_Involvement INTO @V_CR_Number, @V_CR_Subnumber; END; DEALLOCATE curCR_OSW_Involvement;
Comment