вторник, 14 октября 2008 г.

The query has been canceled because the estimated cost of the query exceeds the configured treshold of

На одной из прошлых работ столкнулся с проблемой загрузки базы данных, забэкапленной стандартными средствами 1С, в MS SQL. Ошибка была такого вида:



Такое случается, как правило, с перекачанными конфигурациями, которые богатыри-программисты делают по заказу большой кучи директоров. Запрос получается такого вида, что его предполагаемое время выполнения превышает порог, забитый в настройках MS SQL. Решение проблемы сводится к модификации параметра governor cost limit. Делается это следующим образом:


1. Залогиниться на SQL (при наличии консоли SQL Server Management Studio на локальном компе можно перейти к п.3);
2. Войти в SQL Server Management Studio;
3. Приконнектиться к серверу;
4. Нажать менюшку New Query;
5. Написать в окошке запроса:

USE master;
GO
EXEC sp_configure 'show advanced option', '1';

6. Нажать Execute;
7. Написать в окошке запроса:

reconfigure

8. Нажать Execute;
9. Написать в окошке запроса:

USE master;
GO
EXEC sp_configure 'governor cost limit', '0';

10. Нажать Execute;
11. Написать в окошке запроса:

reconfigure

12. Нажать Execute;
13. Запустить закачку базы данных. Закачка должна пройти успешно. По окончании закачки надо проделать в SQL Server Management Studio восстановительные процедуры:
14. Написать в окошке запроса:

USE master;
GO
EXEC sp_configure 'governor cost limit', '500';

15. Нажать Execute;
16. Написать в окошке запроса:

reconfigure

17. Нажать Execute;
18. Написать в окошке запроса:

USE master;
GO
EXEC sp_configure 'show advanced option', '0';

19. Нажать Execute;
20. Написать в окошке запроса:

reconfigure

Нажать Execute;
21. Закрыть SQL Server Management Studio;
22. Дисконнектиться (если нужно).

Комментариев нет: