Является заменой лучше, чем ltrim/rtrim. У меня нет пробелов между словами, потому что я запускаю его по ключевому столбцу.TSQL: заменяет лучше, чем ltrim/rtrim
update [db14].[dbo].[S_item_60M]
set [item_id]=ltrim(rtrim([item_id]))
Item_id having non-clustered index
Должен ли я отключить индекс для повышения производительности?
Windows 7, 24GB RAM , SQL Server 2014
Этот запрос был запущен в течение 20 часов, а затем я отменил его. Я думаю, что для повышения производительности мне нужно запустить Replace вместо ltrim/rtrim.
SSMS студия разбилась.
Теперь я могу видеть, что это работает в Activity Monitor
Error Log says FlushCache: cleaned up 66725 bufs with 25872 writes in 249039 ms (avoided 11933 new dirty bufs) for db 7:0
Пожалуйста, руководство и предложить мне.
Сколько строк вы пытаетесь обновить? Вероятно, вы должны включить обновления в «куски», например. 10 000 строк за один проход. – gvee
Почему бы просто не попробовать, если есть разница, он должен отображаться, даже если вы запускаете запрос на меньший образец (100, 1000, 10 000? ...) и «сравниваете фактические планы выполнения» – DrCopyPaste
Кроме того, , вы, вероятно, можете ускорить обновление, если вы вытащите все содержимое из производственной таблицы db сначала в табличную переменную, например, вычислите там изменения (т. е.имеют 2 столбца один для исходного 'item_id' для обрезанной этой переменной таблицы), затем запустите обновление в фактической производственной таблице, присоединив вашу переменную таблицы (это может не ускорить весь запрос, но это должно уменьшить блокировку на производственная таблица) – DrCopyPaste