teched 2011: raio-x do sql server: arquitetura interna do gerenciador de banco de dados

51
Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados DBP 401 Fabricio Catae Premier Field Engineer (Microsoft) Luiz Felipe Pimenta Premier Field Engineer (Microsoft)

Upload: fabricio-catae

Post on 09-Jan-2017

178 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

DBP 401

Fabricio CataePremier Field Engineer (Microsoft)

Luiz Felipe PimentaPremier Field Engineer (Microsoft)

Page 2: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Premier Field Engineering

PFE

Serviços Proativos

ServiçosReativos

WorkshopPlus

Health Checks &

RAPs

Situações Críticas

Page 3: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

CasoImagine o cenário:Dois bancos de dados, mas a mesma query…SELECT TB1.Codigo, (CAST(TB1.Custo AS INT) + 100) FROM TB_OPERACAO AS TB1 JOIN TB_TIPO AS TB2 ON TB2.Codigo=TB1.Codigo GO

Page 4: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Armazenamento e Índices

O propósito do banco de dados é:Armazenar informação.

OLTP (Sistemas) e OLAP (DW/DM)

Page 5: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Armazenamento e ÍndicesComo?

Page 6: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Armazenamento e Índices

Estruturas para acolher os dados:IAM, GAM, SGAM e PFS.

Page 7: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Armazenamento e Índices

Tipos:Clustered e Non-Clustered

Page 8: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Tempo de Acesso

O tempo de acesso em disco é da ordem de milissegundos (10-3)

O acesso à memória RAM demora nanossegundos (10-9)

Page 9: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Páginas

Índice

Page 10: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Buffer Manager

Índice ATabela B

Buffer Manager

Memória Disco

Page 11: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Buffer Manager

Índice ATabela B

Buffer Manager

Memória Disco

Page 12: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Buffer Descriptors

Estruturas alocadas logo no startup do serviço para gerenciar a memória

Visível através da DMVsys.dm_os_buffer_descriptors

SELECT database_id, COUNT(*) from sys.dm_os_buffer_descriptorsGROUP BY database_idORDER BY COUNT(*) DESC

Page 13: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Monitorando Buffer CacheDistribuição de Memória

DatabaseFreeStolen

IndicadorPage Life Expectancy

Page 14: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

DBCC MemoryStatus

Page 15: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

SQLOS

StorageEngineSQL OSMemory Management

Thread Scheduling

InfraestruturaThreadMemoriaSincronização

Nomenclaturasys.dm_os_*

Page 16: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Memory Clerks“Stolen Memory” é contabilizada através de Memory Clerk (SQLOS)

Permite identificar a memória utilizada para Conexão, Cache, CLR, etc

Page 17: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Memory ClerksTipos

Genéricos (MEMCLERKS)Caches

User StoreCache Store

Object Pools

select * from sys.dm_os_memory_clerksselect * from sys.dm_os_memory_cache_countersselect * from sys.dm_os_memory_cache_hash_tablesselect * from sys.dm_os_memory_pools

Page 18: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Memory Broker

Caches

Compilation

Workspace

Page 19: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Compilação

Page 20: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Workspace de Execução

Page 21: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Memory Clerks

Page 22: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Buffer Manager (Eager Write)

Índice ATabela B

Buffer Manager

Memória Disco

Page 23: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Buffer Manager (Lazy Write)

Índice ATabela B

Buffer Manager

Memória Disco

Page 24: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Transaction Log

As transações são sempre gravadas em um arquivo de LOG

Page 25: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Buffer Manager (Lazy Write)

Background Task

Buffer Manager

Memória Disco

Page 26: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Processos de Escrita de Dados

Lazy WriterCheckpoint

select session_id, command from sys.dm_exec_requests

Page 27: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Storage Engine

Query

Access Manager

Buffer Manager

Page Manager

Transaction Manager

Lock Manager

StorageEngine

SQL OS Memory ManagementThread Scheduling

Page 28: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Vida da Query

O cliente envia a query...

Page 29: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Vida da Query

Assim que recebe os pacotes:Texto, Query e Plano de Execução…

Texto Query SQL Plano Storage

Engine

Page 30: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Vida da Query

Assim que recebe os pacotes:Texto, Query e Plano de Execução…

Texto Query SQL Plano Storage

Engine

Page 31: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Vida da Query

Assim que recebe os pacotes:Texto, Query e Plano de Execução…

Texto Query SQL Plano Storage

Engine

Page 32: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Vida da Query

Assim que recebe os pacotes:Texto, Query e Plano de Execução…

Texto Query SQL Plano Storage

Engine

Page 33: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Plano

Page 34: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Vida da Query

Assim que recebe os pacotes:Texto, Query e Plano de Execução…

Em nosso exemplo:

Texto Query SQL Plano Storage

Engine

Page 35: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

SQLOS SchedulerSQLOS

Memory Management

Thread SchedulingScheduler

Scheduler

Scheduler

Scheduler

Page 36: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Modelo de Trabalho

Scheduler Worker

Worker

Worker

Worker

TaskTaskTaskTaskTaskTaskTask

Task

Task

Page 37: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Windows Debugger

Page 38: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Threads: Stack

Page 39: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Worker Threads

Workers são threads gerenciadas pelo Scheduler do SQL ServerO número total de worker threads é configurado através do comando sp_configure (padrão: automático)

select * from sys.dm_os_threadsselect * from sys.dm_os_workersselect * from sys.dm_os_schedulersselect * from sys.dm_os_tasks

Page 40: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Execução de Query

SQLOS

Scheduler

Query

Task

Worker

Scheduler Scheduler

Page 41: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

SQLOS Scheduler

SQLOS

Scheduler Scheduler Scheduler Scheduler

Query

Task

Worker

Task

Worker

Task

Worker

Task

Worker

Page 42: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Query: Index ScanSELECT o_orderpriority, COUNT(*) AS Order_CountFROM ordersWHERE o_orderdate >= '2011/01/01' AND o_orderdate < DATEADD (mm, 6, '2011/01/01') AND EXISTS ( SELECT * FROM lineitem WHERE l_orderkey = o_orderkey AND l_commitdate < l_receiptdate ) GROUP BY o_orderpriority ORDER BY o_orderpriority

Page 43: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Execução em Paralelo

Page 44: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Planos com Paralelismo

Através do paralelismo, o tempo total de processamento pode diminuir.

Por outro lado, o custo aumenta devido à necessidade de sincronizar as informações entre as threads.

Page 45: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

EstatísticasPor que é importante?

Que diferença faz?Historigrama e densidade…

Page 46: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Voltando ao Caso...

Procurar ter os índices:AtualizadosAdequados

Estatísticas

Page 47: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Conteúdo RelacionadoDBP301 | Soluções de Alta disponibilidade e Disaster Recovery para o SQL Server

Hands-on Labs: http://thomaslarock.com/2009/01/sql-server-2008-hol/

Exame: 70-433

http://blogs.technet.com/b/comunidadesql/

Page 48: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Palestras RelacionadasDBP301 | Soluções de Alta disponibilidade e Disaster Recovery para o SQL Server

Page 49: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Recursos

Recursos para IT Pros

Recursos para Desenvolvedores

http://technet.microsoft.com/pt-br

http://msdn.microsoft.com/pt-br

Getthefreemobileappforyourphonehttp://gettag.mobi

Getthefreemobileappforyourphonehttp://gettag.mobi

Page 50: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

Não esqueça de preencher sua

avaliação onlinewww.teched.com.br/

avaliacao

Getthefreemobileappforyourphonehttp://gettag.mobi

Page 51: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados

© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.