Slides para discutir a arquitetura do SQL Server, alguns dos principais slides a idéia principal foi retirada da explicacação sencacional fornecida pelo Fabricio Catae na série Fundamentos de Bancos de Dados - https://blogs.msdn.microsoft.com/fcatae/2014/04/29/vdeos-de-fundamentos-banco-de-dados/
3. Agenda
• Objetivos da Apresentação
• Fundamentos
• Componentes
• Funcionamento
• Evolução do Produto
4. Objetivos da Apresentação
• Quais são os conceitos básicos sobre bancos de dados
• Fundamentos do SQL Server
• Como o Servidor SQL Server processa minhas requisições
9. Fundamentos de Banco de Dados
• Atomicidade
• Uma transação deve ser uma unidade atômica de trabalho, ou todas
as modificações são efetuadas, ou nenhuma
• Consistência
• Quando efetivada, a transação deve deixar todos os dados e
estruturas relacionadas em um estado consistente
• Isolamento
• Uma transação não vê os dados modificados de outra transação
enquanto ainda em execução
• Durabilidade
• Transações devem ser persistidas, mesmo em caso de falha do
sistema
14. Background Tasks
Como tudo isso funciona?
Language
Storage
Engine
SQLOS
Protocols
RouterQuery
Adhoc
Compilação
Execução
Access
Method
Buffer
Pool
Arquivos
Dados
Transaction
Manager
Arquivos
de Log
Lock
Manager
Database
Manager
Proc
Cache
Execução
Checkpoint
Lazy Writer
SchedulerSM
Memory
Manager
RM
Broker
System
Tasks
Obrigado
Catae!
15. SQL Protocols e SQLOS
Client SQL
Server
______________
______________
______________
Client
C#
ADO.NET
Windows
Porta
TCP
(1433)
SQL Server
Listener
IO
Completion
Pool de Workers
1 Wait
4
Wait
5
Wait
6
Wait
2 Wait ...
4
Wait
Command
Fila TCP
Fila de
Processamento
Task
4Task
3
Task
2Task
1
Worker Thread
(Runnable)
1
Scheduler
Connection
TCP/IP
16. Parser
Worker
Thread
Language Processing and Execution
Task
ODS
DTC
AUT
H
CMD
ADHOC Proc
CMD
Select
From
Where
Pessoas
<
Nomes
Pessoas
Amigos
> 1000
60
Amigos
Idade
Tb
Pessoas
IDX 1 IDX 2 IDX 3
SEE
K
SCAN
TB
1
TB
2
Pacote de Redes
(4k) = Input Buffer
E c/ + 1 tabela?
18. Situações Frequentes
• Consumo de Memória
• DBCC FREEPROCCACHE
• DBCC DROPCLEANBUFFERS
• Arquivo de Log enorme
• Backups
19. Evolução do Hardware
32 – Bits
64 – Bits
Numa
Solid State Disks
SSD
Terabytes de
Memória Física
Sockets Multicores
Cache
L1/L2/L3
20. Evolução SQL Server
SQL 2000
Sphinx /
Shiloh
Processamento Memória
Hardware/
Armazenament
o
HA
Funcionalidade
s
SQL 2005
Yukon
SQL 2008
Katmai /
Kilimanjaro
SQL 2012
Denali
SQL 2014
SQL14
Arquitetura
• Tabelas e Índices
Btree
• Create Index
Online
• Particionamento
• Row Overflow (>
8Kb)
• Row/Page
Compression
• Column Store
• Column Store
(Table Read /
Write)
• Create Index
Online Partition
• Incremental
Statistics
• Introdução ao
Thread Scheduler
• Suporte ao Hyper
Threading
• Inclusão Itanium
• Plataformas
x86/x64
• Suporte ao k-
groups (>64)
• Batch processing
• Hekaton
• Limite máximo de
3GB
• Atinge 64 GB com
AWE
• Suporte ao
NUMA
• Novo Memory
Manager (Bpool
+ Memory
Clerks)
• Consolidação
Memory Manager
• Hekaton (Database
< Memória)
• File API
• Database
snapshot
• Filestream
• TempDB Local
em Cluster
• SMB
• Filetable
• Buffer Pool
Extension
• Azure Rest API
• Failover Cluster
• Database
Mirroring
• Availability
Group
• Full Text Search
• Criptografia
• Snapshot isolation
level
• CDC
• [RG] CPU Soft
Limit
• [RG] – Memoria
(sessão)
• [RG] Memoria
(caches) –R2
• TDE
• CDC
• [RG] CPU
Máxima (hard
limit)
• [RG] Memória -
Outros
• [RG] – I/O de
Disco
Hekaton
Column Store
Numa
21. SQL Server não é só Engine
Relacional...
• SQL AGENT
• SSAS – SQL Server Analisys Services
• SSRS – SQL Server Reporting Services
• SSIS – SQL Server Integration Services
• MDS – Master Data Services
• DQS – Data Quality Services
• Cloud computing
• SQL Azure
• E agora... Document DB (NoSQL)