- •1.2.2Типы представлений — до 5 мин.
- •1.2.3Создание представлений — до 25 мин.
- •1.2.4Использование представлений — до 10 мин.
- •1.2.5Изменение и удаление представлений — до 5 мин.
- •1.2.6Индексированные представления — до 5 мин.
- •2.2.2Создание хранимых процедур — до 15 мин.
- •2.2.3Использование параметров — до 15 мин.
- •2.2.4Использование локальных переменных внутри хранимой процедуры — до 15 мин.
- •2.2.6Использование select для возвращаемых значений — до 10 мин.
- •2.2.5Использование return для возвращаемых значений — до 10 мин.
- •2.2.7Управление хранимыми процедурами с помощью t-sql — до 10 мин.
- •3.2.2Когда использовать триггеры —до 10 мин.
- •3.2.3Создание триггеров — до 10 мин.
- •3.2.4Создание триггера типа delete — до 10 мин.
- •3.2.5Создание триггера типа insert — до 5 мин.
- •3.2.6Создание триггера типа update — до 10 мин.
- •3.2.7Создание триггера instead of — до 10 мин.
- •3.2.8Использование триггеров after — до 5 мин.
- •3.2.9Использование вложенных триггеров — до 10 мин.
- •3.2.10Управление триггерами с помощью операторов t-sql — до 5 мин.
- •4.2.2Уровни изолированности — до 10 мин.
- •4.2.3Поведение параллельных транзакций — до 10 мин.
- •4.2.4Режимы транзакций — до 20 мин.
- •4.2.5Вложенные транзакции — до 15 мин.
- •4.2.6Откаты транзакций — до 15 мин.
- •4.2.7Точки сохранения — до 10 мин.
- •5.2.2Уровни блокировок — до 15 мин.
- •5.2.3Режимы блокировки — до 20 мин.
- •5.2.4Блокирование и взаимоблокировки — до 20 мин.
- •5.2.5Подсказки блокировки — до 20 мин.
- •6.2.2Логическая оптимизация запросов — до 20 мин.
- •6.2.3Оптимизация плана исполнения запроса — до 15 мин.
- •6.2.4Подсказки оптимизатору запросов — до 15 мин.
- •6.2.5Оптимизация с использованием sql Server 2000 Index Tuning Wizard и sql Server 2005 Database Tuning Advisor — до 30 мин.
- •7.2.2Режимы аутентификации — до 15 мин.
- •7.2.3Учетные записи и пользователи — до 20 мин.
- •7.2.4Администрирование полномочий доступа к базам данных — до 20 мин.
- •7.2.5Администрирование ролей баз данных — до 10 мин.
- •7.2.6Делегирование учетной записи безопасности — до 15 мин.
- •8.2.2Внедрение sql кода (sql Injection) — до 20 мин.
- •8.2.3Защита sql Server в Интернет — до 20 мин.
- •8.2.4Пример организации системы безопасности приложений — до 40 мин.
- •9.2.2Журнальное протоколирование в sql Server — до 20 мин.
- •9.2.3Контрольные точки — до 15 мин.
- •9.2.4Методы резервного копирования — до 25 мин.
- •10.2.2Слежение за резервным копированием — до 10 мин.
- •10.2.3Планирование резервного копирования — до 25 мин.
6.2.3Оптимизация плана исполнения запроса — до 15 мин.
Модифицирование плана исполнения может оказаться трудным делом, а создание лучшего плана исполнения, чем у оптимизатора запросов, может оказаться еще более трудным делом. Наиболее вероятны улучшения от внесения изменений в план исполнения операторов JOIN, GROUP BY, ORDER BY и UNION. Вы можете легко модифицировать эти операции, пробуя различные подсказки и просматривая результаты. Изменяя подсказку и просматривая результаты в окне Query Analyzer, вы, возможно, найдете более эффективный вариант выполнения оператора.
К сожалению, не существует какого-либо единого подхода к настройке операторов T-SQL для получения более высокой производительности. Поскольку каждая база данных уникальна и каждое приложение отличается от других приложений, модификации должны выполняться для каждого конкретного случая.
Методы доступа к данным – это, по сути, объекты, используемые системой SQL Server при выборке данных из базы данных. Анализируя свою базу данных и данные, которые она содержит, вам, возможно, удастся оптимизировать метод доступа к данным, когда целью оптимизации является снижение количества операций ввода-вывода.
Модификации метода доступа к данным, как и модификации плана исполнения, должны выполняться для каждого конкретного случая. Следующие рекомендации помогут вам в выборе более эффективного метода доступа к данным.
Используйте наиболее подходящий индекс. Использование наиболее подходящего индекса для операции является необходимым условием достижения наиболее высокой производительности. Наиболее подходящий индекс для определенной операции – это индекс, позволяющий наиболее быстро находить данные с использованием наименьшего числа операций ввода-вывода. Вы можете определить наиболее подходящий индекс, исходя из знания особенностей вашей базы данных и ее данных или используя утилиту Query Analyzer. Эта утилита позволяет вам опробовать различные сценарии, чтобы определить индекс, который позволяет считывать минимальное количество строк.
Индексы очень важны для SQL Server, но они могут приводить к снижению производительности при неверном использовании. Следите за количеством индексов на одну таблицу – особенно при большом количестве операций для операторов INSERT, UPDATE и DELETE. Излишнее количество индексов приводит к снижению производительности для операций этого типа, поскольку модифицирование индексов сопряжено с дополнительной нагрузкой на систему.
Используйте охватывающие (covering) индексы. Использование охватывающих (covering) индексов, возможно, позволит вам обойтись без операции ввода-вывода в процессе поиска данных. Вместо доступа к соответствующей таблице вам, возможно, удастся считывать необходимые данные из самого индекса.
Снижайте количество возвращаемых строк. Определите, насколько необходимы те или иные данные, возвращаемые в результате запросов. Модифицируйте запросы T-SQL, чтобы в них выполнялся доступ только к необходимым данным. Не считывайте строки, которые будут затем отброшены. Снижение количества строк, считываемых из базы данных, может быть достигнуто в результате повышения селективности запроса.
