Обновление таблицы занимает очень много времени

У меня есть таблица в SQL Server 2008 (SP2), содержащая 30 миллионов строк, размер таблицы 150 ГБ, есть пара столбцов int и два столбца nvarchar (max): один содержит текст (от 1–30000 символов), а другой - xml (до 100000 символов).

Таблица не имеет первичных ключей или индексов ( это промежуточная таблица). Итак, я выполняю запрос:

UPDATE [dbo].[stage_table] 
SET [column2] = SUBSTRING([column1], 1, CHARINDEX('.', [column1])-1);

запрос выполняется в течение 3 часов (и он все еще не завершен), что, на мой взгляд, слишком долго. Это? Я вижу, что существует постоянная скорость чтения 5 МБ / с и скорость записи 10 МБ / с в файл .mdf.

Как я могу узнать, почему запрос выполняется так долго? «Сервер» - i7, 24 ГБ оперативной памяти, диски SATA на RAID 10.

Обновлено:

таблица содержит один столбец типа int, два столбца nvarchar (20) и два столбца nvarchar (max). Столбцы Column1 и Columns2 в предложении обновления выше являются столбцами nvarchar (20). "Большие" столбцы не обновляются.

Большое спасибо!

5
задан marc_s 8 January 2011 в 21:38
поделиться