SQL Server 2012 Deep Dive (rus)

Post on 24-Jan-2015

1.028 views 3 download

description

Talk is called Deep Dive, so be prepared to hold your breath. In this talk we will take a look at the mechanisms of the SQL Server and literally dive into the bowels of SQL Server, going through all the stages of the request processing.

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 подключение

Заповни АнкетуВиграй Приз

http://anketa.msswit.in.ua

Контакты

• http://reznik.uneta.com.ua • @denisreznik• denisreznik@live.ru

Спасибо!