2010-01-21 2 views
2

Я ищу информацию о том, как SQL Server фактически обрабатывает выполнение запросов в мельчайших деталях (например, какие данные хранятся в буфере/памяти и как он решает получать свежие данные, даже если есть изменение обновления только в одном столбце таблицы, участвующей в запросе и т. д.)Выполнение выполнения SQL Server Query

Если кто-нибудь знает источники, пожалуйста, дайте мне знать?


У нас есть веб-приложение, с помощью SQL Server 2000, он тяжелый часты читает почти 70% из таблиц (приборная панель) каждые 30 секунд. и в то же время происходит много писем.

Пожалуйста, дайте мне знать любые советы по оптимизации вышеупомянутого сценария?

ответ

1

Никто не сможет дать вам ответ о том, как решить проблему оптимизации. Для этого требуется доступ к вашему серверу базы данных. Чтобы решить ваши проблемы, вам нужно понять, как работает база данных, и для этого вам нужно сделать некоторое чтение.

Он-лайн ресурсы в порядке, однако следующие три книги бесценны. Первые две книги содержат очень подробную информацию о том, как работает SQL Server. Последние - это руководство по написанию запросов, но с обсуждением того, как Engine также запрашивает запросы.

  1. Kalen Daleney: Sql Server 2008 Internals
  2. Sql Server 2005: Practical Troubleshooting:
  3. Ben Gan et al: Inside SQL Server 2008: T-SQL Querying
0

Вы должны изучить план выполнения.

Нажмите Ctrl-L в SSMS или введите SET SHOWPLAN_TEXT ON перед выполнением запроса.

Это даст вам подробную информацию о том, что используются индексы, которые соединяют алгоритмы применяются и т.д.

Вы также можете посмотреть статистику:

SET STATISTICS TIME ON 
SET STATISTICS IO ON 

, который даст вам информацию о сколько чтений было сделано из фактических таблиц, кеширования и т. д., и сколько времени (фактическое и CPU раз) выполняло каждый запрос.

1

Для ответа на вопросы типа внутреннего типа вам потребуется много сообщений, я предлагаю вам начать чтение некоторых белых документов/блогов и некоторых книг.

В 2000 году архитектура SQL Server от Ken Henderson предоставит вам глубокие внутренние детали, для более свежих выпусков SQL он сделал практическую проблему с ошибками 2005 года, что неплохо, и книга Kalen Delaney SQL 2008 Internals очень хороша.

0

Что касается внешних источников, то MSDN имеет исчерпывающий ресурс по оптимизации установки SQL Server 2000, в частности, статьи Patterns & Practices о производительности и масштабируемости.

Если вы знаете, с чего начать, возьмите подход «снизу вверх» с изучением профилей SQL и планов запросов, как уже упоминалось. В противном случае начните сверху вниз и узнайте о расходах, связанных с перекомпиляцией запросов, эффективностью индексирования и использованием оптимизатора запросов.