SQL Server 2012 Deep Dive (rus)

39
  • Upload

    -
  • Category

    Documents

  • view

    1.028
  • download

    3

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)

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)