Оптимизация запросов - PullRequest
       3

Оптимизация запросов

2 голосов
/ 14 марта 2010

Я пытаюсь научиться оптимизировать SQL-запросы с использованием SQL Server 2005. Однако я не нашел ни одного практического примера, где я мог бы улучшить производительность путем настройки одного запроса. Не могли бы вы перечислить несколько примеров запросов - до и после оптимизации?

Это должна быть настройка запроса - не добавление индекса, не создание индекса покрытия, не внесение каких-либо изменений в таблицу. Никаких изменений не должно быть сделано в таблице и индексе. [Я понимаю, что показатели важны. Это только для учебной цели]

Было бы здорово, если бы вы могли объяснить, используя временную таблицу, вместо того, чтобы ссылаться на какие-либо примеры баз данных, такие как adventureworks.

Ответы [ 3 ]

1 голос
/ 14 марта 2010

1) Использование как можно большего количества JOIN в SELECT, UPDATE и DELETE. Иногда люди перебирают записи (или используют курсоры) для обновления, удаляя записи из таблицы, но вы почти всегда можете присоединиться к таблицам, чтобы достичь того же результата, и это значительно повысит производительность. Пример здесь .

2) Вам не нужно использовать временные таблицы, если вы не добавили в него несколько записей, не выполнили несколько промежуточных операций и не вернули результаты. Для этого вам все равно следует использовать Табличные переменные .

3) Если вы не хотите использовать временные таблицы по указанным выше причинам, потому что вам не нужны промежуточные обновления и т. Д., Но вы все еще хотите использовать наборы результатов для дальнейших объединений, попробуйте использовать CTE (общие выражения таблиц), Я знаю, что это не может быть связано с производительностью, но очень полезно по сравнению с производными таблицами.

4) Как кто-то предлагал выше, попробуйте использовать IF EXISTS вместо COUNT. Было бы также хорошо.

5) Попробуйте использовать имена столбцов вместо * в запросах SELECT, где это возможно.

0 голосов
/ 14 марта 2010

Я предлагаю вам прочитать хорошую книгу, такую ​​как Настройка SQL

0 голосов
/ 14 марта 2010

В качестве первого шага к обучению используйте explain в своих запросах.

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