
Оптимизация и проектирование баз данных в MS SQL Server
Заказать курсСтоимость: 28900 руб.
Продолжительность: 24 ч.
СОДЕРЖАНИЕ КУРСА:
Внутреннее устройство базы данных
Детально рассматриваем, как устроена БД: файлы, файловые группы, страницы. Как это может влиять на производительность.
Дисковые подсистемы
Рассмотрим разичные виды дисков и дисковых подсистем, какую роль они могут играть на производительность, какие способы анализа производительности можно применять.
Практические советы по созданию БД
Практические советы: как правильно выбрать, что поместить в БД, сколько их создавать, размещение на диске, как с точки зрения производительности, так и с точки зрения логики и бизнеса.
Журнал транзакций
Журнал транзакций и его влияние на производительность.
Основные инструменты диагностики
Profiler, DMV & DMF, Xevents, Query Store, обзор бесплатных и распространенных инструментов и скриптов для диагностики.
Анализ производительности дисковой подсистемы
Подходы и инструменты к анализу проблем с дисковой подсистемой.
Планы запросов
Как MS SQL Server превращает запрос в результат. Что такое планы запросов, как их получить, как интерпретировать, зачем это нужно. Детально рассмотрим различные операторы в планах запросов. Примеры: куда смотреть, чтобы быстрее понять проблему, сложные планы.
Почему сервер может "тормозить"
Обзор основных причин торможения MS SQL, и как их быстро вычислить.
Индексы
Детально рассмотрим различные индексы, их влияние на производительность. Как правильно выбрать индексы. Нестандартные подходы к индексированию из практики.
Статистика
Что такое статистика, как она используется оптимизатором запросов, основные настройки. Примеры запросов, когда статистика влияет и не влияет на производительность.
Динамический T-SQL
Особенности, опасности применения, где реально может быть полезен.
Соединение таблиц
Различные виды соединения таблиц. Примеры, когда их надо использовать.
Представления, хранимые процедуры, функции и триггеры
Особенности использования с точки зрения производительности. Практические примеры.
Временные таблицы и табличные переменные
Что общего, и в чем отличия. В каких ситуациях что лучше использовать. Практические примеры с точки зрения прозводительности.
Разбиение запросов, подзапросы
На примерах рассмотрим, как разбиение сложных запросов может влиять на производительность. Также проверим, как работают подзапросы.
Паралеллизм
Рассмотрим, как устроено паралельное выполнение запросов в MS SQL. Основные настройки, влияние на производительность.
Как MS SQL работает с оперативной памятью
Рассмотрим, как MS SQL использует память, для чего, как можно понять, хватает ли памяти серверу, как он ее использует, как мы можем настроить использование памяти.
Оптимизаций группировок
Различные виды группировок и их оптимизация на примерах.
Оптимизация операций DML
Оптимизация операций INSERT, UPDATE и DELETE на примерах.
Оптимизация выделения памяти для запросов
Как MS SQL выделяет память для запросов, к каким последствиям это может привести, как можно этим управлять.
Хинты
Опасность применения хинтов из практики, какие способы есть, чтобы подтолкнуть запрос к нужному плану без хинтов. Безопасные хинты.
Практические задачи
Рассматриваем различные ситуации проблем с MS SQL из практики. Анализируем вместе с группой возможные пути решения.