Ознаки
Розглянемо такий сценарій:
-
У вас є дуже великий таблицю FileStream.
-
Ви виконуєте запит на видалення рядків у таблиці Filestrestream, що створює дорогий план запитів, наприклад один, який фільтрується внутрішнім об'єднанням до іншої великої таблиці в системі.
-
Оптимізатор запитів вибирає паралельний план виконання.
У цьому сценаріївиникає таке повідомлення про помилку, які можуть з'явитися в журналі помилок SQL Server, а також у разі появи повідомлень про помилки, які нагадують наведені нижче дії.
Помилка SPID spidnumber : 5553, серйозність: 20, стан: 6.
Внутрішня помилка сервера SQL Server : дата й час SPID Диспетчер FILESTREAM не може продовжити поточну команду.
Стан
Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".
Спосіб вирішення
Проблему вирішено в таких сукупних оновлень для SQL Server:
Відомості про накопичувальне оновлення для сервера SQL Server:
Кожне нове Сукупне оновлення для сервера SQL Server містить усі виправлення та всі виправлення системи безпеки, які були включені до попередньої Сукупне оновлення. Ознайомтеся з найновішими сукупними оновленнями для сервера SQL Server:
Інші способи вирішення
Щоб вирішитицю проблему, у цій проблеміможна скористатися таким способом:
Переміщуйте внутрішній запит на об'єднання в окрему інструкцію та збережіть результати в тимчасовій таблиці. Після цього запустіть запит на видалення, відфільтрований за записами в тимчасовій таблиці. Крім того, можна збільшити граничне значення витрат для паралелізму, щоб примусово виконати оптимізатор для серіалізації плану запитів.
Наприклад:
Виберіть команду Retable. Alias у #T з БД. DBO. OuterTable ВНУТРІШНЯ Реєстрація дБ. DBO. Retable на Retable. Alias = OuterTable. Alias
WHERE OuterTable. Alias > 30006 і OuterTable. Alias < 30010
ВИДАЛЕННЯ з БД. DBO. Таблиці РОЗТАШУВАННЯ псевдоніма (SELECT * FROM #T)
Посилання
Відомості про термінологію , яку Корпорація Майкрософт використовує для опису оновлень програмного забезпечення.