teched 2011: raio-x do sql server: arquitetura interna do gerenciador de banco de dados
TRANSCRIPT
![Page 1: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/5.jpg)
Armazenamento e ÍndicesComo?
![Page 6: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/9.jpg)
Páginas
Índice
![Page 10: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/14.jpg)
DBCC MemoryStatus
![Page 15: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/18.jpg)
Memory Broker
Caches
Compilation
Workspace
![Page 19: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/19.jpg)
Compilação
![Page 20: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/20.jpg)
Workspace de Execução
![Page 21: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/21.jpg)
Memory Clerks
![Page 22: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/33.jpg)
Plano
![Page 34: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/37.jpg)
Windows Debugger
![Page 38: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/38.jpg)
Threads: Stack
![Page 39: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/39.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/40.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/41.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/42.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/43.jpg)
Execução em Paralelo
![Page 44: TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/44.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/45.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/46.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/47.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/48.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/49.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/50.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062503/587333431a28ab596c8b707b/html5/thumbnails/51.jpg)
© 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.