SQL Server: событие не ссылается ни на какие таблицы (предупреждение Tuning Advisor) - PullRequest
9 голосов
/ 14 мая 2009

У меня есть приложение, написанное на C #, которое использует Linq2SQL для связи с SQL Server. Есть некоторые запросы, которые выполняются немного (очень) медленно, и я полагаю, что, вероятно, для ускорения работы нужны индексы.

Но я действительно не знаю, как это сделать, или на что, или где, или что я должен или не должен делать. Так что я подумал, что могу спросить здесь, но потом я обнаружил программу под названием Помощник по настройке ядра СУБД , которую я решил попробовать в первую очередь. Проблема в том, что я не могу заставить его работать. Это, наверное, я просто не знаю как, но я просто не могу понять это. Насколько я вижу, я сделал то, что должен, согласно файлам справки.

  1. Открыть SQL Server Profiler .
  2. Создайте новый Trace , используя шаблон Tuning .
  3. Запустите мое приложение и сделайте некоторые вещи, которые генерируют запросы SQL.
  4. Закройте мое приложение.
  5. Остановить трассировку.
  6. Сохранить трассировку как файл трассировки .
  7. Открыть Советник по настройке ядра СУБД
  8. Выберите Файл как Рабочая нагрузка и выберите Файл трассировки Я сохранил ранее.
  9. Выберите базы данных, которые мое приложение использует в Выберите базы данных и таблицы для настройки .
  10. Нажмите Начать анализ .

Так далеко я думал, что дела идут хорошо. Но когда это заканчивается через некоторое время, я получаю это:

Progress

И полностью empy Рекомендации Страница. Событие не ссылается ни на какие таблицы? Что это значит (кроме очевидного, конечно: р)? Я что-то не так понял о процессе здесь? Что происходит?

Ответы [ 3 ]

7 голосов
/ 15 ноября 2010

Есть еще одна вещь, которую вы можете проверить, если вы получаете эту ошибку. Если вы такой же наглый, как я, вы, возможно, забыли выбрать соответствующую базу данных в раскрывающемся меню «База данных для анализа рабочей нагрузки» на вкладке «Общие»

7 голосов
/ 14 мая 2009

Я думаю, что причина, по которой вы не получаете рекомендации, заключается в том, что у вас нет разрешений 'SHOWPLAN' в вашей базе данных. Предоставьте пользователю, который запускает анализатор, доступ и повторите попытку.

Кроме того, я также вижу некоторые ошибки «недопустимого имени объекта» - убедитесь, что пользователь, на котором вы запускаете анализатор, имеет соответствующие разрешения для всех задействованных таблиц.

3 голосов
/ 03 февраля 2011

Я запускал анализатор как сам (dbo), но моя трассировка содержала запросы от пользователя пула приложений IIS, у которого не было доступа к SHOWPATH.

Итак, я предоставил SHOWPATH доступ к этому пользователю пула приложений IIS, а затем он работал нормально.

GRANT SHOWPLAN TO [COMPANYDOMIAN\IIS_APPUSER]
...