SQL Server 2012 Deep Dive (rus)
description
Transcript of SQL Server 2012 Deep Dive (rus)
SQL Server 2012 Deep DiveДенис Резник
Database Architect at The Frayman Group
SQL Server Network Interface
SQL Server Protocols
• Shared Memory• TCP/IP• Named Pipes• VIA (Deprecated)
TDS Endpoints
TCP/IPShared Memory
Named Pipes
VIA
DAC
TCP/IP
Note: TDS – Tabular Data Stream
Protocol Layer
• Распаковка TDS пакета• Определение SQL команды• Передача обработки следующему
компоненту• Упаковка данных в TDS пакет для
передачи клиенту
Query processor
Query Processor
Parser
Algebrizer
Optimizat
or
Executor
• Задача – выполнить SQL-запрос, представленный в текстовом виде
Parser
• Проверяет есть ли план в кэше• Проверяет на базовые соответствия
SQL-синтаксису• На выходе получаем ParseTree
Algebrizer
• Проверка того что объекты существуют и видимы в текущем контексте• Определение типов для каждого узла
в ParseTree• Поиск агрегатных операций• На выходе получаем QueryTree
Optimizer
• Задача – получить оптимальный план выполнения
Optimizer
Query Tree
Pre-Optimization
Поиск простого плана. Если не найден – переход к следующей фазе
OptimizerOptimizer Phase 0
Упрощение запроса с использованием синтаксических преобразований.
Возвращается TP plan
Загрузка статистики
Оценочная стоимость плана < 0.2
OptimizerOptimizer Phase 1
Поднабор правил оптимизации
Возвращается так называемый quick plan
Оценочная стоимость плана < 1.0
Использование индексированных представлений
OptimizerOptimizer Phase 2
Полная оптимизация.
Возвращается full plan
Проверка и сравнение параллельного плана
Optimizer
• Индексы
Статистика
• Хранит в себе распределение данных
Executor
• Задача выполнить запрос на основе плана выполнения• Запрашивает у Storage Engine
необходимые данные
Демонстрация
Индексы, статистика и планы запроса
Storage engine
Access methods
• Структуры данных и интерфейс для модификации и доступа к данным
Buffer Manager
• Обслуживает Buffer Pool• Задача - вернуть необходимые
страницы данных
Buffer ManagerBuffer Pool
Data Cache
Database File
Access MethodsBuffer Manager
Log Manager Buffer Pool
Data Cache
Database File
Access MethodsBuffer Manager
Transaction Log
Log Manager
Lock Manager
• Задача - обработка конкурентного доступа к данным
Виды блокировок - Shared
S S
X
Виды блокировок - Exclusive
X
XS
Виды блокировок - Update
U
US
SX
Виды блокировок – Intent блокировки
S
ISIS
Демонстрация
Немного о дедлоках
SQL OS
Execution model
session Thread Pool
Running
Suspended
Runnable
task(s)
Scheduler Logical CPU
Демонстрация
SQL OSDAC подключение
Ресурсы
• SQL Server 2012 Internals and Troubleshouting• Microsoft® SQL Server® 2008 Internals• The Guru's Guide to SQL Server Stored Procedures• SQL Server SQLOS team blog
Заповни АнкетуВиграй Приз
http://anketa.msswit.in.ua
Контакты
• http://reznik.uneta.com.ua • @denisreznik• [email protected]
Спасибо!