Мы запускаем SQL Server 2000 и каждый вечер получаем несколько таких ошибок.
Could not continue scan with NOLOCK due to data movement
Запрос, который выдает эту ошибку, представляет собой большой сложный запрос, объединяющий более десятка таблиц. Наши базовые данные могут часто обновляться.
Культурная «лучшая практика» заключается в том, что в прошлом введение NOLOCK
подсказок увеличивало производительность и улучшало параллелизм. Этот запрос не должен быть точным на 100%, то есть мы допустим грязное чтение и т. Д. Однако мы пытаемся понять, почему база данных выдает эту ошибку, даже если у нас есть все эти подсказки блокировки.
Может ли кто-нибудь пролить свет на это - будьте осторожны, я на самом деле программист, а не администратор базы данных :)
PS: Мы применили исправление, упомянутое ниже: http://support.microsoft.com/kb/815008