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

Post on 09-Jan-2017

178 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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)

Premier Field Engineering

PFE

Serviços Proativos

ServiçosReativos

WorkshopPlus

Health Checks &

RAPs

Situações Críticas

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

Armazenamento e Índices

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

OLTP (Sistemas) e OLAP (DW/DM)

Armazenamento e ÍndicesComo?

Armazenamento e Índices

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

Armazenamento e Índices

Tipos:Clustered e Non-Clustered

Tempo de Acesso

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

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

Páginas

Índice

Buffer Manager

Índice ATabela B

Buffer Manager

Memória Disco

Buffer Manager

Índice ATabela B

Buffer Manager

Memória Disco

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

Monitorando Buffer CacheDistribuição de Memória

DatabaseFreeStolen

IndicadorPage Life Expectancy

DBCC MemoryStatus

SQLOS

StorageEngineSQL OSMemory Management

Thread Scheduling

InfraestruturaThreadMemoriaSincronização

Nomenclaturasys.dm_os_*

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

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

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

Memory Broker

Caches

Compilation

Workspace

Compilação

Workspace de Execução

Memory Clerks

Buffer Manager (Eager Write)

Índice ATabela B

Buffer Manager

Memória Disco

Buffer Manager (Lazy Write)

Índice ATabela B

Buffer Manager

Memória Disco

Transaction Log

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

Buffer Manager (Lazy Write)

Background Task

Buffer Manager

Memória Disco

Processos de Escrita de Dados

Lazy WriterCheckpoint

select session_id, command from sys.dm_exec_requests

Storage Engine

Query

Access Manager

Buffer Manager

Page Manager

Transaction Manager

Lock Manager

StorageEngine

SQL OS Memory ManagementThread Scheduling

Vida da Query

O cliente envia a query...

Vida da Query

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

Texto Query SQL Plano Storage

Engine

Vida da Query

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

Texto Query SQL Plano Storage

Engine

Vida da Query

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

Texto Query SQL Plano Storage

Engine

Vida da Query

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

Texto Query SQL Plano Storage

Engine

Plano

Vida da Query

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

Em nosso exemplo:

Texto Query SQL Plano Storage

Engine

SQLOS SchedulerSQLOS

Memory Management

Thread SchedulingScheduler

Scheduler

Scheduler

Scheduler

Modelo de Trabalho

Scheduler Worker

Worker

Worker

Worker

TaskTaskTaskTaskTaskTaskTask

Task

Task

Windows Debugger

Threads: Stack

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

Execução de Query

SQLOS

Scheduler

Query

Task

Worker

Scheduler Scheduler

SQLOS Scheduler

SQLOS

Scheduler Scheduler Scheduler Scheduler

Query

Task

Worker

Task

Worker

Task

Worker

Task

Worker

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

Execução em Paralelo

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.

EstatísticasPor que é importante?

Que diferença faz?Historigrama e densidade…

Voltando ao Caso...

Procurar ter os índices:AtualizadosAdequados

Estatísticas

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/

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

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

Não esqueça de preencher sua

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

avaliacao

Getthefreemobileappforyourphonehttp://gettag.mobi

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

top related