terceiro encontro 2016 sql server rs

Post on 15-Apr-2017

104 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Query InternalsApril 2016

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

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

Por que conhecer?

Velocidade, escalabilidade e performance;

Maximizar o hardware;

Utilizar melhor todas as features;

Ciclo de Vida de Uma Query

Storage

Engine

Storage

(RAM

ou HD)

Cliente

Relat.

EngineStorage

Engine

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

Protocolo TDS

TDS = Tabular Data Stream;

• Formato aberto;

• Linux FREETDS;

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

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;

Command Parser

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

• Query Tree;

Query Optimizer

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

Se concentra apenas em DML;

Query Executor

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

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

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.

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

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.

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

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...

Plano de Execução

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

do comando;

• Mais eficiente ou mais otimizado?

Demo 1

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...

Demo 2

Live Query Statistics

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

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

Demo 3

Dúvidas?

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

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.

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

Patrocinadores

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

top related