У меня есть таблица в 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). "Большие" столбцы не обновляются.
Большое спасибо!