Опубликован: 11.12.2006 | Уровень: специалист | Доступ: платный

Лекция 35: Использование SQL Query Аnalyzer и SQL Profiler

Аннотация: Эффективность операторов T-SQL определяется с помощью SQL Query Аnalyzer и SQL Profiler. Вы сможете улучшить производительность своих запросов. Query Аnalyzer представляет собой графический пользовательский интерфейс SQL. Для лекции характерно большое количество примеров, описывающих использование программ. Приводятся комментарии по ходу выполнения практических заданий, чтобы не допустить ошибок. Описываются методы оптимизации запросов и планов исполнения.

В этой лекции мы продолжим изучение хранимых процедур, которое начали в "Создание хранимых процедур и управление этими процедурами" . Вы узнаете, как анализировать хранимые процедуры и другие операторы T-SQL с помощью анализатора запросов Microsoft SQL Server Query Analyzer и профайлера SQL Server Profiler. Из этого анализа вы сможете определять, насколько эффективны операторы T-SQL. Эффективный запрос SQL Server использует подходящую последовательность операций и подходящие индексы для снижения количества обрабатываемых строк и минимизации количества операций ввода-вывода.

Используя Query Analyzer, вы можете видеть план исполнения, выбранный для оператора T-SQL оптимизатором запросов SQL Server. Оптимизатор запросов – это внутренний модуль, который ищет наилучший план исполнения для каждого оператора T-SQL. Оптимизатор запросов анализирует каждый оператор T-SQL, просматривает ряд возможных планов исполнения и выполняет оценку "стоимости" каждого плана с точки зрения требуемых ресурсов и времени обработки. Выбирается план с наименьшей стоимостью. Стоимость каждого плана определяется на основе имеющейся статистики, которая собрана системой и может оказаться устаревшей. Поскольку вы можете знать больше о вашей базе данных и ваших данных, чем оптимизатор запросов, то, возможно, вам удастся создать план, который окажется лучше, чем у оптимизатора запросов. Используя информацию, которую выдает Query Analyzer, вы можете определить, будет ли эффективным план оптимизатора запросов для определенного оператора, и если нет, то вы можете попытаться оптимизировать данный оператор, модифицируя его или используя подсказку SQL. В этой лекции вы узнаете, как оптимизировать операторы T-SQL, что будет дополнением к изучению использования Query Analyzer.

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

Использование SQL Query Аnalyzer

Утилита Query Analyzer поставляется вместе с Microsoft SQL Server 2000 взамен Interactive SQL for Windows (ISQL/W) как графический пользовательский интерфейс (GUI) SQL, но вы, возможно, обратили внимание, что утилита Query Analyzer представлена как isqlw.exe в диспетчере задач. Вы можете использовать Query Analyzer для обработки операторов T-SQL и просмотра результатов этих операторов. Query Analyzer можно также использовать как средство отладки для оценки плана исполнения, который генерируется оптимизатором запросов для вашего оператора T-SQL.

Выполнение операторов T-SQL

Выполнение операторов T-SQL и вывод результатов этих операторов являются основными возможностями Query Analyzer. Чтобы использовать Query Analyzer для выполнения оператора T-SQL, выполните следующие шаги.

  1. Щелкните на кнопке Start (Пуск), укажите Programs, укажите Microsoft SQL Server и затем выберите Query Analyzer. Появится диалоговое окно Connect to SQL Server (Подсоединение к SQL Server) (рис. 35.1). Это диалоговое окно используется для соединения с системой SQL Server.
    Диалоговое окно Connect to SQL Server (Подсоединение к SQL Server)

    Рис. 35.1. Диалоговое окно Connect to SQL Server (Подсоединение к SQL Server)
  2. Введите имя сервера в комбинированном поле с раскрывающимся списком. Это может быть имя локального сервера или удаленного сервера. На рис. 35.1 в этом поле введена точка (.). Ввод точки указывает, что вы хотите подсоединиться к локальному серверу. Установка флажка непосредственно под полем SQL Server указывает, что вы хотите запустить SQL Server, если он еще не запущен. В секции Connect using (Подсоединяться с использованием) выберите метод аутентификации, который хотите использовать для подсоединения к SQL Server. Если выбрать вариант Windows NT authentication (Аутентификация Windows), то вам не нужно указывать имя пользователя или пароль, поскольку для аутентификации доступа к SQL Server будет использоваться учетная запись Microsoft Windows 2000. Если выбрать вариант SQL Server authentication (Аутентификация в SQL Server), то для доступа к SQL Server нужно указать имя пользователя SQL Server (Login name) и пароль (Password).
  3. Щелкните на кнопке OK для подсоединения к указанному серверу SQL и для запуска Query Analyzer. При первоначальном появлении окна Query Analyzer видны только панель Query и панели навигации, но этот вид изменяется, как только вы начинаете запускать операторы T-SQL. Разверните панель Query для заполнения всей правой стороны окна Query Analyzer (рис. 35.2). В раскрывающемся списке панели инструментов выберите базу данных, в которой хотите запускать запросы. На рис. 35.2 выбрана база данных master. Для нашего примера щелкните на направленной вниз стрелке и выберите Northwind.
  4. После выбора базы данных введите в правой панели оператор T-SQL – в данном случае – SELECT * FROM Customers. Теперь у вас появляется несколько возможностей. Вы можете проверить синтаксис данного оператора T-SQL, щелкнув на кнопке Parse Query (Синтаксическая проверка запроса) в панели инструментов (синяя пометка ["галочка"]), или можете запустить оператор, щелкнув на кнопке Execute Query (Выполнить запрос) (зеленый треугольник, указывающий вправо). Вы можете остановить выполнение запроса, щелкнув на кнопке Cancel Executing Query (Отменить выполнение запроса) (квадрат). На рис. 35.3 показан выполненный запрос по таблице Customers базы данных Northwind.

    После запуска оператора T-SQL утилита Query Analyzer создает панель с возможностью вертикальной и горизонтальной прокрутки для просмотра результатов, как это показано на рис. 35.3. Query Analyzer можно также использовать как средство, помогающее вам в настройке ваших операторов T-SQL, как мы увидим в разделе "Оптимизация операторов T-SQL" ниже в этой лекции.

Окно Query Analyzer

увеличить изображение
Рис. 35.2. Окно Query Analyzer
Выполненный запрос в панели Query Analyzer

увеличить изображение
Рис. 35.3. Выполненный запрос в панели Query Analyzer
Максим Ерохин
Максим Ерохин
Россия, г. Санкт-Петербург
Татьяна Лубинец
Татьяна Лубинец
Россия, Уфа, Уфимский авиационный институт, 1987