Действительно медленные запросы информации схемы на SQL Server 2005 - PullRequest
0 голосов
/ 24 августа 2010

У меня есть база данных с довольно большим количеством таблиц, около 3500, и приложение, которому нужен доступ к списку таблиц.

На конкретном сервере для возврата требуется более 2,5 минут.

EXEC sp_tables @table_type="'TABLE'"

Я знаю, что есть более быстрые способы сделать это, но, к сожалению, я не в состоянии изменить приложение и должен найти способ выдвинуть его ниже 30 секунд, чтобы приложение не бросалоошибки тайм-аута.

Итак.Что, если что, я могу сделать, чтобы улучшить производительность этого sp на сервере sql?

Ответы [ 3 ]

0 голосов
/ 24 августа 2010

Что ж, sp_tables - это системный код, и его нельзя изменить (это можно обойти в SQL Server 2000, а не в SQL Server 2005 +)

Ваши параметры

  1. Изменить SQL
  2. Изменить время ожидания команды
  3. Большой сервер

Вы уже сказали "нет" очевидным решениям ...

0 голосов
/ 24 августа 2010

Вам нужно подходить к этому так же, как к любой другой проблеме производительности. Почему это медленно?А именно, где он блокируется?Дисковый ввод-вывод?ЦПУ?Сеть?Блокировка раздора?Научный метод состоит в том, чтобы использовать методологию, подобную Ожидания и очереди , или ее более новый эквивалент SQL 2008 Устранение неполадок производительности в SQL Server 2008 .Ленивый способ - просто проверить столбцы wait_type, wait_time и wait_resource в sys.dm_exec_requests для сеанса, выполняющего вызов sp_tables.Как только вы узнаете , что блокирует выполнение, вы можете действовать соответствующим образом.

Если бы я рискнул, вы обнаружите в качестве причины конфликт: другие сеансы блокируют метаданные таблицыисключительно и таким образом блокирует выполнение sp_tables, который должен ждать, пока все операции перед ним завершатся.

0 голосов
/ 24 августа 2010

Я видел, как эти хранимые процедуры работают медленно, если у вас нет разрешения GRANT VIEW DEFINITION для вашей учетной записи.Из того, что я прочитал, это вызовет проверку безопасности, замедляющую запрос.

Возможно, гуру SQL может прокомментировать, почему, если это поможет вашей проблеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...