Поток выполнения запросов SQL Server - PullRequest
2 голосов
/ 21 января 2010

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

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


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

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

Ответы [ 5 ]

1 голос
/ 21 января 2010

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

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

  1. Кален Далней: Sql Server 2008 Internals
  2. Sql Server 2005: практическое устранение неполадок :
  3. Бен Ган и др. : Внутри SQL Server 2008: запросы T-SQL
1 голос
/ 21 января 2010

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

В 2000 году архитектура SQL Server Кена Хендерсона предоставит вам глубокие внутренние подробности, для более поздних выпусков SQL он выполнил практическое устранение неполадок 2005 года, что неплохо, и книга Калена Делани по SQL 2008 Internals очень хорошая. 1003 *

0 голосов
/ 21 января 2010

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

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

0 голосов
/ 21 января 2010

Об управлении буфером SQL Server 2008: http://msdn.microsoft.com/en-ca/library/aa337525.aspx

Затем вы можете просмотреть на левой боковой панели информацию о других предметах.

0 голосов
/ 21 января 2010

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

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

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

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

SET STATISTICS TIME ON
SET STATISTICS IO ON

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

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