39

SQL Server 2012 Deep Dive (rus)

  • Upload
    -

  • View
    1.036

  • Download
    3

Embed Size (px)

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.

Citation preview

Page 1: SQL Server 2012 Deep Dive (rus)
Page 2: SQL Server 2012 Deep Dive (rus)

SQL Server 2012 Deep DiveДенис Резник

Database Architect at The Frayman Group

Page 3: SQL Server 2012 Deep Dive (rus)
Page 4: SQL Server 2012 Deep Dive (rus)

SQL Server Network Interface

Page 5: SQL Server 2012 Deep Dive (rus)

SQL Server Protocols

• Shared Memory• TCP/IP• Named Pipes• VIA (Deprecated)

Page 6: SQL Server 2012 Deep Dive (rus)

TDS Endpoints

TCP/IPShared Memory

Named Pipes

VIA

DAC

TCP/IP

Note: TDS – Tabular Data Stream

Page 7: SQL Server 2012 Deep Dive (rus)

Protocol Layer

• Распаковка TDS пакета• Определение SQL команды• Передача обработки следующему

компоненту• Упаковка данных в TDS пакет для

передачи клиенту

Page 8: SQL Server 2012 Deep Dive (rus)

Query processor

Page 9: SQL Server 2012 Deep Dive (rus)

Query Processor

Parser

Algebrizer

Optimizat

or

Executor

• Задача – выполнить SQL-запрос, представленный в текстовом виде

Page 10: SQL Server 2012 Deep Dive (rus)

Parser

• Проверяет есть ли план в кэше• Проверяет на базовые соответствия

SQL-синтаксису• На выходе получаем ParseTree

Page 11: SQL Server 2012 Deep Dive (rus)

Algebrizer

• Проверка того что объекты существуют и видимы в текущем контексте• Определение типов для каждого узла

в ParseTree• Поиск агрегатных операций• На выходе получаем QueryTree

Page 12: SQL Server 2012 Deep Dive (rus)

Optimizer

• Задача – получить оптимальный план выполнения

Optimizer

Query Tree

Pre-Optimization

Поиск простого плана. Если не найден – переход к следующей фазе

Page 13: SQL Server 2012 Deep Dive (rus)

OptimizerOptimizer Phase 0

Упрощение запроса с использованием синтаксических преобразований.

Возвращается TP plan

Загрузка статистики

Оценочная стоимость плана < 0.2

Page 14: SQL Server 2012 Deep Dive (rus)

OptimizerOptimizer Phase 1

Поднабор правил оптимизации

Возвращается так называемый quick plan

Оценочная стоимость плана < 1.0

Page 15: SQL Server 2012 Deep Dive (rus)

Использование индексированных представлений

OptimizerOptimizer Phase 2

Полная оптимизация.

Возвращается full plan

Проверка и сравнение параллельного плана

Page 16: SQL Server 2012 Deep Dive (rus)

Optimizer

• Индексы

Page 17: SQL Server 2012 Deep Dive (rus)

Статистика

• Хранит в себе распределение данных

Page 18: SQL Server 2012 Deep Dive (rus)

Executor

• Задача выполнить запрос на основе плана выполнения• Запрашивает у Storage Engine

необходимые данные

Page 19: SQL Server 2012 Deep Dive (rus)

Демонстрация

Индексы, статистика и планы запроса

Page 20: SQL Server 2012 Deep Dive (rus)

Storage engine

Page 21: SQL Server 2012 Deep Dive (rus)

Access methods

• Структуры данных и интерфейс для модификации и доступа к данным

Page 22: SQL Server 2012 Deep Dive (rus)

Buffer Manager

• Обслуживает Buffer Pool• Задача - вернуть необходимые

страницы данных

Page 23: SQL Server 2012 Deep Dive (rus)

Buffer ManagerBuffer Pool

Data Cache

Database File

Access MethodsBuffer Manager

Page 24: SQL Server 2012 Deep Dive (rus)

Log Manager Buffer Pool

Data Cache

Database File

Access MethodsBuffer Manager

Transaction Log

Log Manager

Page 25: SQL Server 2012 Deep Dive (rus)

Lock Manager

• Задача - обработка конкурентного доступа к данным

Page 26: SQL Server 2012 Deep Dive (rus)

Виды блокировок - Shared

S S

X

Page 27: SQL Server 2012 Deep Dive (rus)

Виды блокировок - Exclusive

X

XS

Page 28: SQL Server 2012 Deep Dive (rus)

Виды блокировок - Update

U

US

SX

Page 29: SQL Server 2012 Deep Dive (rus)

Виды блокировок – Intent блокировки

S

ISIS

Page 30: SQL Server 2012 Deep Dive (rus)

Демонстрация

Немного о дедлоках

Page 31: SQL Server 2012 Deep Dive (rus)

SQL OS

Page 32: SQL Server 2012 Deep Dive (rus)

Execution model

session Thread Pool

Running

Suspended

Runnable

task(s)

Scheduler Logical CPU

Page 33: SQL Server 2012 Deep Dive (rus)

Демонстрация

SQL OSDAC подключение

Page 34: SQL Server 2012 Deep Dive (rus)
Page 36: SQL Server 2012 Deep Dive (rus)

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

http://anketa.msswit.in.ua

Page 37: SQL Server 2012 Deep Dive (rus)

Контакты

• http://reznik.uneta.com.ua • @denisreznik• [email protected]

Page 38: SQL Server 2012 Deep Dive (rus)

Спасибо!

Page 39: SQL Server 2012 Deep Dive (rus)