Главная » Microsoft SQL Server, Базы данных » Использование Database Engine Tuning Advisor

0

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

Database Engine Tuning Advisor является модернизацией мастера настройки Новинка ^ индексов (Index Tuning Wizard) версии SQL Server 2000. Новая утилита также 2005                                              рекомендует модификации файловой структуры.

Используйте утилиту Database Tuning Advisor для проверки и точной настройки стратегии индексации. Если эта утилита предложит вам добавить некоторый индекс, постарайтесь понять, почему. Хорошее понимание данных, запросов и индексации также имеет важное значение для разработчика, чтобы позволить этой утилите выполнить свою работу.

Puc. 50.6. Утилита Database Engine Tuning Advisor способна идентифицировать недостатки индексации и предложить решения проблемы

Резюме

На среднем уровне теории оптимизации лежит индексация. Для осознанного создания индексов нужно понимать не только технологии — оптимизатор запросов, индексные страницы и параметры индексации, — но также схему и уровень абстракции данных. Это одна из проблемных областей, где теоретические знания и практические навыки имеют первостепенное значение. В следующей главе мы продолжим разговор о производительности, затронув вопрос повышения доступности базы данных.

Управление транзакциями и блокировкой

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

Конкуренция означает борьбу. По мере увеличения количества пользователей, работающих с одними и теми же ресурсами, производительность запросов падает.

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

И вот почему. По умолчанию, чтобы защитить одну транзакцию от остальных, транзакция, осуществляющая чтение, будет блокировать транзакцию, выполняющую запись. Аналогично, транзакция, выполняющая запись, блокирует транзакции чтения и записи. Чем больше транзакций происходит одновременно (особенно это касается длительных транзакций), тем больше происходит блокировок, и проблемы растут экспоненциально по мере того, как одни ожидающие транзакции блокируют другие на все более продолжительный промежуток времени.

Именно поэтому на четвертом уровне теории оптимизации находится конкуренция.

Хорошая схема, пакетные запросы и приличная стратегия индексирования совместно работают в интересах базы дан-

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

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

Источник: Нильсен, Пол. Microsoft SQL Server 2005. Библия пользователя. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2008. — 1232 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии