terceiro encontro 2016 sql server rs

30
Query Internals April 2016

Upload: rodrigo-crespi

Post on 15-Apr-2017

104 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Terceiro Encontro 2016 SQL Server RS

Query InternalsApril 2016

Page 2: Terceiro Encontro 2016 SQL Server RS

Quem é você?

Rodr igo Crespi

M C T , M C D B A , M C I T P , M C S E e e t c .

E s p e c i a l i s t a e m B a n c o d e D a d o s – U G F

M e s t r a n d o e m E n g e n h a r i a d e S o f t w a r e - U E M C

P A S S C h a p t e r L e a d e r – S Q L S e r v e r R S

@SQLCresp

i

rodr igocrespi

br . l inkedin.com/in/ rodr igocresp i

Sqlcrespi .com

Page 3: Terceiro Encontro 2016 SQL Server RS

Agenda

• Por que conhecer?

• Ciclo de Vida de uma Query

• Arquitetura do SQL Server

• Select * from cliente

• Update cliente set nome = ‘Rodrigo’

• Plano de Execução

• Dúvidas

Page 4: Terceiro Encontro 2016 SQL Server RS

Por que conhecer?

Velocidade, escalabilidade e performance;

Maximizar o hardware;

Utilizar melhor todas as features;

Page 5: Terceiro Encontro 2016 SQL Server RS

Ciclo de Vida de Uma Query

Storage

Engine

Storage

(RAM

ou HD)

Cliente

Relat.

EngineStorage

Engine

Page 6: Terceiro Encontro 2016 SQL Server RS

Arquitetura do SQL Server

P

r

o

t

o

c

o

l

o

s

Parser

Optimizer

SQL Mgr.

DB. Mgr.

Query

Executor

R

e

l

a

t

i

o

n

a

l

E

n

g

i

n

e

S

t

o

r

a

g

e

E

n

g

i

n

e

T-Services

Lock Mgr.

File Mgr.

Utilities

Access

Methods

SQLOS

SQLOS.dll

SQLLang.dll

PageLock Monitor

Resource Monitor

Lazy Writer

Scheduler Monitor

SQLmin.dll

Buffer Pool

Memory Mgr.

Scheduling

Sinc. Services

Lock Mgr.

I/O

SQLDK.dll

Page 7: Terceiro Encontro 2016 SQL Server RS

Protocolo TDS

TDS = Tabular Data Stream;

• Formato aberto;

• Linux FREETDS;

Page 8: Terceiro Encontro 2016 SQL Server RS

Arquitetura do SQL Server

P

r

o

t

o

c

o

l

o

s

Parser

Optimizer

SQL Mgr.

DB. Mgr.

Query

Executor

R

e

l

a

t

i

o

n

a

l

E

n

g

i

n

e

S

t

o

r

a

g

e

E

n

g

i

n

e

T-Services

Lock Mgr.

File Mgr.

Utilities

Access

Methods

SQLOS

SQLOS.dll

SQLLang.dll

PageLock Monitor

Resource Monitor

Lazy Writer

Scheduler Monitor

SQLmin.dll

Buffer Pool

Memory Mgr.

Scheduling

Sinc. Services

Lock Mgr.

I/O

SQLDK.dll

Page 9: Terceiro Encontro 2016 SQL Server RS

Relational Engine

Também é chamado de Query Processor;

Inclui os componente do SQL Server que determinam exatamente o

que a query necessita fazer e a melhor maneira de fazer;

Page 10: Terceiro Encontro 2016 SQL Server RS

Command Parser

Verifica a sintaxe e traduz comandos T-SQL para um formato interno;

• Query Tree;

Page 11: Terceiro Encontro 2016 SQL Server RS

Query Optimizer

Pega a Query Tree do Parser e prepara para execução;

Se concentra apenas em DML;

Page 12: Terceiro Encontro 2016 SQL Server RS

Query Executor

É o executor, roda o plano que o Query Optimizer criou;

Page 13: Terceiro Encontro 2016 SQL Server RS

Arquitetura do SQL Server

P

r

o

t

o

c

o

l

o

s

Parser

Optimizer

SQL Mgr.

DB. Mgr.

Query

Executor

R

e

l

a

t

i

o

n

a

l

E

n

g

i

n

e

S

t

o

r

a

g

e

E

n

g

i

n

e

T-Services

Lock Mgr.

File Mgr.

Utilities

Access

Methods

SQLOS

SQLOS.dll

SQLLang.dll

PageLock Monitor

Resource Monitor

Lazy Writer

Scheduler Monitor

SQLmin.dll

Buffer Pool

Memory Mgr.

Scheduling

Sinc. Services

Lock Mgr.

I/O

SQLDK.dll

Page 14: Terceiro Encontro 2016 SQL Server RS

Storage Engine

Inclui todos os componentes para acessar e gerenciar dados;

É composto de três grandes áreas:

• Métodos de acesso;

• Serviços de transação e lock;

• Comandos utilitários.

Page 15: Terceiro Encontro 2016 SQL Server RS

Arquitetura do SQL Server

P

r

o

t

o

c

o

l

o

s

Parser

Optimizer

SQL Mgr.

DB. Mgr.

Query

Executor

R

e

l

a

t

i

o

n

a

l

E

n

g

i

n

e

S

t

o

r

a

g

e

E

n

g

i

n

e

T-Services

Lock Mgr.

File Mgr.

Utilities

Access

Methods

SQLOS

SQLOS.dll

SQLLang.dll

PageLock Monitor

Resource Monitor

Lazy Writer

Scheduler Monitor

SQLmin.dll

Buffer Pool

Memory Mgr.

Scheduling

Sinc. Services

Lock Mgr.

I/O

SQLDK.dll

Page 16: Terceiro Encontro 2016 SQL Server RS

SQLOS

Surge no SQL Server 2005;

• Componente anterior era UMScheduler;

SQLOS tem a função de:

• Gerenciar memória;

• Scheduling;

• Gerenciar I/O;

• Tratamento de exceção;

• Dumping;

• Etc.

Page 17: Terceiro Encontro 2016 SQL Server RS

Arquitetura do SQL Server

P

r

o

t

o

c

o

l

o

s

Parser

Optimizer

SQL Mgr.

DB. Mgr.

Query

Executor

R

e

l

a

t

i

o

n

a

l

E

n

g

i

n

e

S

t

o

r

a

g

e

E

n

g

i

n

e

T-Services

Lock Mgr.

File Mgr.

Utilities

Access

Methods

SQLOS

SQLOS.dll

SQLLang.dll

PageLock Monitor

Resource Monitor

Lazy Writer

Scheduler Monitor

SQLmin.dll

Buffer Pool

Memory Mgr.

Scheduling

Sinc. Services

Lock Mgr.

I/O

SQLDK.dll

Page 18: Terceiro Encontro 2016 SQL Server RS

Relational Engine

OptimizerQuery

Executor

Cmd Parser

SNI

Camada de Protocolo

Storage Engine

Transaction

Manager

Access

Methods

Buffer

Manager

Lock Manager

Data Cache

Plan Cache

Data File

T-SQL

Select * from cliente

T

D

S

IF

Query Tree

O

L

E

D

B

IF

Buffer Pool

Query Workspace

Query Compile

Token Perm

XEven

ts, M

eta

dad

os,

ou

tro

s...

Page 19: Terceiro Encontro 2016 SQL Server RS

Plano de Execução

• É a forma do otimizador calcular o caminho mais eficiente para a execução

do comando;

• Mais eficiente ou mais otimizado?

Page 20: Terceiro Encontro 2016 SQL Server RS

Demo 1

Page 21: Terceiro Encontro 2016 SQL Server RS

Relational Engine

OptimizerQuery

Executor

Cmd Parser

SNI

Camada de Protocolo

Storage Engine

Transaction

Manager

Access

Methods

Buffer

Manager

Data File

T-SQL

Update cliente set nome = ‘Rodrigo’

T

D

S

IF

Query Tree

O

L

E

D

B

IF

Lazy Writer

CheckPoint

Lock Manager

Data Cache

Plan Cache

Buffer Pool

Query Workspace

Query Compile

Token Perm

Xeven

ts, M

eta

dad

os,

ou

tro

s...

Page 22: Terceiro Encontro 2016 SQL Server RS

Demo 2

Page 23: Terceiro Encontro 2016 SQL Server RS

Live Query Statistics

Exibe o processo de execução do Plano em tempo real;

/* CUIDADO ao executar em produção */

Page 24: Terceiro Encontro 2016 SQL Server RS

Demo 3

Page 25: Terceiro Encontro 2016 SQL Server RS

Dúvidas?

Page 26: Terceiro Encontro 2016 SQL Server RS

Upcoming SQLSaturdays

North America International

• Apr 30 Baltimore

• May 7 Jacksonville

• May 14 Rochester

• May 14 Houston

• May 21 Atlanta

• June 4 Maine

• Apr 23 Costa Rica

• May 21 El Salvador

• May 21 Kyiv

• May 28 Plovdiv

• May 28 Brisbane

• June 4 Bratislava

• June 4 Krasnodar

Visit www.sqlsaturday.com to

register for an event near you!

18 de Junho Rio de Janeiro

Page 27: Terceiro Encontro 2016 SQL Server RS

2

7

Volunteering Opportunities

PASS would not exist without its global network of

passionate, dedicated, and hardworking volunteers.

Volunteer today!

For local opportunities, please visit:

volunteer.sqlpass.org

For PASS HQ related activities, please update the

“MyVolunteering” section of your MyPASS profile.

Page 28: Terceiro Encontro 2016 SQL Server RS

Stay Involved!

• Sign up for a free membership today at sqlpass.org.

• Linked In: http://www.sqlpass.org/linkedin

• Facebook: http://www.sqlpass.org/facebook

• Twitter: @SQLPASS

• PASS: http://www.sqlpass.org

Page 29: Terceiro Encontro 2016 SQL Server RS

Patrocinadores

Page 30: Terceiro Encontro 2016 SQL Server RS

Obrigado

30

@SQLCresp

i

rodr igocrespi

br . l inkedin.com/in/ rodr igocres

pi

Referências e dicas de leitura:

• https://en.wikipedia.org/wiki/Cache_algorithms;

• Microsoft SQL Server 2012 Internals;

• Microsoft SQL Server 2008 Internals and Troubleshooting;

Sqlcrespi .com