TechEd 2011: Raio-X do SQL Server: Arquitetura Interna do Gerenciador de Banco de Dados
1. 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)
3. Caso
Imagine 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
4. Armazenamento e Índices
O propósito do banco de dados é:
Armazenar informação.
OLTP (Sistemas) e OLAP (DW/DM)
12. Buffer Descriptors
Estruturas alocadas logo no startup
do serviço para gerenciar a memória
Visível através da DMV
sys.dm_os_buffer_descriptors
SELECT database_id, COUNT(*) from sys.dm_os_buffer_descriptors
GROUP BY database_id
ORDER BY COUNT(*) DESC
16. Memory Clerks
“Stolen Memory” é contabilizada através
de Memory Clerk (SQLOS)
Permite identificar a memória utilizada
para Conexão, Cache, CLR, etc
17. Memory Clerks
Tipos
Genéricos (MEMCLERKS)
Caches
User Store
Cache Store
Object Pools
select * from sys.dm_os_memory_clerks
select * from sys.dm_os_memory_cache_counters
select * from sys.dm_os_memory_cache_hash_tables
select * from sys.dm_os_memory_pools
39. Worker Threads
Workers são threads gerenciadas
pelo Scheduler do SQL Server
O número total de worker threads é
configurado através do comando
sp_configure (padrão: automático)
select * from sys.dm_os_threads
select * from sys.dm_os_workers
select * from sys.dm_os_schedulers
select * from sys.dm_os_tasks
42. SELECT o_orderpriority, COUNT(*) AS Order_Count
FROM orders
WHERE 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
44. 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.
47. Conteúdo Relacionado
DBP301 | 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/