Ideia central

Microsoft SQL Server é um SGBD relacional desenvolvido pela Microsoft, amplamente usado em ambientes corporativos Windows e Azure. Combina engine relacional robusta com funcionalidades de BI (SSAS, SSRS, SSIS), alta disponibilidade nativa e integração profunda com o ecossistema Microsoft.

Edições principais

EdiçãoPúblico-alvoLimites notáveis
ExpressDesenvolvimento, pequenas apps10 GB por banco, 1 GB RAM, 1 socket CPU
DeveloperDesenvolvimento / testesSem limites, mas não pode ir pra produção
StandardApps mid-tier, PMEs128 GB RAM, 4 sockets
EnterpriseMissão crítica, datawarehousesSem limites, todos os recursos
Azure SQLCloud managed (PaaS)Sem infraestrutura para gerenciar

Arquitetura interna

┌───────────────────────────────────────────────────┐
│                  SQL Server Engine                 │
│                                                   │
│  ┌──────────────────────────────────────────────┐ │
│  │           Relational Engine                  │ │
│  │  Parser → Algebrizer → Optimizer → Executor  │ │
│  └──────────────────────────────────────────────┘ │
│                                                   │
│  ┌──────────────────────────────────────────────┐ │
│  │           Storage Engine                     │ │
│  │   Buffer Pool | Lock Manager | Log Manager   │ │
│  └──────────────────────────────────────────────┘ │
│                                                   │
│  ┌────────────┐  ┌──────────┐  ┌───────────────┐  │
│  │ Data Files │  │ Log File │  │ TempDB        │  │
│  │  (.mdf/.ndf)│  │  (.ldf)  │  │               │  │
│  └────────────┘  └──────────┘  └───────────────┘  │
└───────────────────────────────────────────────────┘
  • Relational Engine: recebe queries T-SQL, otimiza e gera plano de execução
  • Storage Engine: gerencia páginas de dados (8KB cada), buffer pool em memória, e o transaction log
  • Buffer Pool: cache de páginas de dados em memória RAM, o fator mais impactante em performance
  • TempDB: banco compartilhado para tabelas temporárias, operações de sort, worktables, gargalo frequente

Arquivos de um banco de dados

ExtensãoTipoFunção
.mdfPrimary data fileArquivo de dados principal
.ndfSecondary dataArquivos adicionais (filegroups extras)
.ldfLog fileTransaction log: registro sequencial de mudanças

Recovery Models

Define como o transaction log é gerenciado e o que pode ser recuperado:

ModeloLog truncationBackup de logPoint-in-time recovery
SIMPLEAutomático (checkpoint)NãoNão
FULLApenas após backup de logSimSim
BULK-LOGGEDApós backup de logSimParcial

Use FULL em produção quando point-in-time recovery é necessário. SIMPLE é aceitável para ambientes de dev/test ou bancos que podem ser recriados.

Funcionalidades-chave

  • Always On Availability Groups: HA e DR com réplicas síncronas/assíncronas
  • Columnstore Index: índices colunares para analytics e DW, com compressão massiva e queries 10-100x mais rápidas
  • In-Memory OLTP (Hekaton): tabelas e stored procedures otimizadas para memória
  • Row-Level Security: controle de acesso a nível de linha
  • Dynamic Data Masking: mascaramento de dados sensíveis para usuários não-privilegiados
  • Temporal Tables: histórico automático de alterações em linhas

T-SQL: extensões proprietárias do SQL Server

SQL Server usa Transact-SQL (T-SQL), dialeto da Microsoft com extensões como:

  • TOP N em vez de LIMIT
  • IDENTITY para auto-increment
  • ISNULL(), COALESCE(), TRY_CAST()
  • CTEs com WITH
  • PIVOT / UNPIVOT
  • Variáveis com DECLARE @var INT
  • Stored procedures, functions, triggers

Conexões

Referências