Mam tabelę w SQL Server 2008 (SP2) zawierającą 30 milionów wierszy, rozmiar tabeli 150 GB, jest kilka kolumn int i dwóch kolumn nvarchar (max): jeden zawierający tekst (od 1 -30000 znaków) i jeden zawierający xml (do 100000 znaków).Aktualizacja tabeli trwa bardzo długo
Tabela nie ma żadnych kluczy podstawowych ani indeksów (jest to tabela pomostowa). Więc używam zapytania:
UPDATE [dbo].[stage_table]
SET [column2] = SUBSTRING([column1], 1, CHARINDEX('.', [column1])-1);
kwerenda jest uruchomiona przez 3 godziny (i to nie jest jeszcze zakończone), co moim zdaniem jest zbyt długa. Czy to jest? Widzę, że istnieje stała szybkość odczytu 5 MB/s i szybkość zapisu 10 MB/s do pliku .mdf.
Jak mogę się dowiedzieć, dlaczego zapytanie działa tak długo? "Serwer" jest i7, 24GB RAM, dyski SATA RAID 10.
aktualizacja:
tabela zawiera jedną, dwie kolumny int nvarchar (20) i dwie kolumny nvarchar (max) kolumny. Kolumna 1 i Kolumny 2 w powyższej klauzuli aktualizacji są kolumnami nvarchar (20). "Duże" kolumny nie są aktualizowane.
Wielkie dzięki!
Czy kolumny aktualizacji zostały zindeksowane? – IamIC