Sumário
PARTE I
INTRODUÇÃO AO MICROSOFT SQL SERVER 2012
Capítulo 1
Visão geral do Microsoft SQL Server 2012
3
Business Intelligence . . . 3 Database Engine . . . 3 Interface de programação T-SQL. . . 4 Subsistema de segurança . . . 5 Replicação . . . 6 SQL Server Agent . . . 6
Ferramentas de alta disponibilidade e recuperação de desastres . . . 7
SQL Server Integration Services . . . 8
Ferramentas de gerenciamento do SQL Server . . . 8
Resumo . . . 8
Capítulo 2
Instalação, configuração e atualização do
Microsoft SQL Server 2012
9
Edições do SQL Server 2012 . . . 9Escolha o hardware para o SQL Server . . . 11
Pré-requisitos de software . . . 11 Antes da instalação . . . 12 Instâncias do SQL Server . . . 12 Contas de serviço . . . 13 Sequências de collation . . . 14 Modos de autenticação. . . 14 Instale o SQL Server . . . 14
Instale o SQL Server a partir do assistente Setup . . . 14
Após a instalação . . . 17
Atribua um número de porta TCP/IP ao SQL Server Database Engine . . . 17
Abra uma porta de instância do SQL Server utilizando Firewall do Windows . . . 18
viii
SumárioAtualize para o SQL Server 2012 . . . 19
Atualização in-place . . . 19
Atualização side-by-side . . . 20
Resumo . . . 20
Capítulo 3
As ferramentas de administração e
desenvolvimento do SQL Server 2012
21
O SQL Server Books Online. . . 21Utilize o SQL Server Management Studio . . . 23
Utilize o SQL Server Management Studio para criar soluções e projetos . . . 26
O SQL Server Data Tools . . . 27
O SQL Server Configuration Manager . . . 30
Resumo . . . 31
PARTE II
PROJETO DE BANCOS DE DADOS
Capítulo 4
Projeto de bancos de dados SQL Server
35
Entenda os bancos de dados de sistema do SQL Server . . . 35Banco de dados master . . . 36
Banco de dados tempdb . . . 36
Banco de dados model . . . 36
Banco de dados msdb . . . 37
Banco de dados resource . . . 37
Banco de dados distribution . . . 37
Entenda a estrutura de um banco de dados SQL Server . . . 38
Crie um banco de dados . . . 39
Entenda os argumentos . . . 41
Adicione arquivos e filegroups . . . 41
Desanexe e anexe bancos de dados no SQL Server . . . 44
Entenda os modelos de recuperação de banco de dados . . . 47
Modelo simple . . . 47 Modelo full . . . 47 Modelo bulk-logged . . . 47 Resumo . . . 47 LeBlanc_Iniciais.indd viii LeBlanc_Iniciais.indd viii 26/06/14 08:2126/06/14 08:21
Capítulo 5
Como criar sua primeira tabela
49
Desenvolva um padrão de nomenclatura . . . 50
Entenda os esquemas . . . 52
Entenda os tipos de dados do SQL Server . . . 54
Tipos de dados numéricos . . . 54
Tipos de dados string . . . 55
Tipos de dados de data e hora. . . 56
Outros tipos de dados . . . 57
Entenda as propriedades das colunas . . . 58
Crie tabelas . . . 58
Altere tabelas . . . 62
Entenda as colunas calculadas . . . 63
Adicione restrições a uma tabela . . . 64
Restrições primary key (chave primária) . . . 64
Restrições default (padrão) . . . 65
Restrições unique (únicas) . . . 65
Restrições check (verificação) . . . 65
Restrições de foreign key (chave estrangeira) . . . 68
Entenda a FileTable . . . 69
Crie diagramas de banco de dados . . . 70
Resumo . . . 71
Capítulo 6
Construção e manutenção de índices
73
Visão geral da estrutura dos índices . . . 73Estrutura dos índices clusterizados . . . 76
Estrutura dos índices não clusterizados . . . 78
Estrutura dos índices columnstore . . . 80
Adicione opções de índice . . . 82
Adicione colunas incluídas . . . 85
Adicione filtros a índices . . . 87
Insira índices . . . 89
Desabilite e remova índices . . . 90
x
SumárioPARTE III
TÓPICOS AVANÇADOS DE PROJETO DE BANCO DE DADOS
Capítulo 7
Compactação de tabelas
95
Entenda a compactação de linha . . . 96
Compactação de linha com T-SQL . . . .100
Entenda a compactação de página . . . .101
Compactação de página com T-SQL . . . .103
Estime os efeitos da compactação . . . .103
Considerações sobre a compactação . . . .104
Resumo . . . .104
Capítulo 8
Particionamento de tabelas
105
Crie uma função de particionamento . . . .106Utilize argumentos para a função de particionamento . . . .106
Crie um esquema de particionamento . . . .109
Especifique argumentos para o esquema de particionamento . . . .109
Particione tabelas e índices . . . .109
Resumo . . . .115
Capítulo 9
Instantâneos de banco de dados
117
Entenda os pré-requisitos e as limitações dos instantâneos de banco de dados . . . .117Crie e visualize instantâneos de banco de dados . . . .118
Remova instantâneos de banco de dados . . . .119
Reverta para um instantâneo do banco de dados . . . .121
Resumo . . . .122
Capítulo 10 A instrução SELECT
123
Escreva uma instrução SELECT . . . .123Classifique os resultados . . . .125
Filtre dados com a cláusula WHERE . . . .126
Utilize operadores de comparação . . . .126
Utilize o operador BETWEEN . . . .127
Utilize a cláusula WHERE com múltiplas condições . . . .128
Pesquise uma lista de valores . . . .129
Utilize uma pesquisa com curinga. . . .129
Crie alias . . . .130
LeBlanc_Iniciais.indd x
Utilize o operador JOIN para retornar dados de múltiplas tabelas . . . .131
Utilize INNER JOIN . . . .131
Utilize OUTER JOINs . . . .133
Limite os dados retornados em seu conjunto de resultados . . . .134
Utilize TOP . . . .135
Utilize DISTINCT e NULL . . . .135
Utilize UNION para combinar conjuntos de resultados . . . .136
Resumo . . . .137
PARTE IV
COMO USAR TRANSACT-SQL (T-SQL)
Capítulo 11 Tópicos avançados de recuperação de dados
141
Transforme e desfaça a transformação nos dados (pivoting) . . . .141Utilize o operador PIVOT . . . .141
Utilize o operador UNPIVOT . . . .144
Pagine dados . . . .146
Escreva expressões . . . .147
Utilize variáveis . . . .148
Resumo . . . .150
Capítulo 12 Modificação de dados
151
Insira dados em tabelas no SQL Server . . . .151Utilize a instrução INSERT INTO . . . .151
Utilize sequência de números . . . .153
Utilize a instrução SELECT INTO . . . .155
Atualize dados em tabelas . . . .156
Atualize linhas ao referenciar várias tabelas . . . .157
Exclua dados de tabelas . . . .157
Mesclagem de dados . . . .159
Retorne dados de saída . . . .160
Resumo . . . .161
Capítulo 13 Funções escalares predefinidas
163
Utilize funções de data e hora . . . .163Derivação de datas a partir de “parts” . . . .165
xii
SumárioUtilize funções de conversão . . . .167
Novas funções de conversão do SQL Server 2012 . . . .169
Utilize funções de string . . . .170
Utilize funções lógicas . . . .171
Resumo . . . .172
PARTE V
COMO CRIAR OUTROS OBJETOS DE BANCO DE DADOS
Capítulo 14 Tópicos avançados de T-SQL
175
Agregação, visualização em janelas e agrupamento . . . .175Faça agregações . . . .176
Faça agregações com agrupamentos . . . .177
Visualize em janelas . . . .179
Novos recursos de visualização em janelas de T-SQL . . . .181
Utilize a cláusula HAVING . . . .181
Utilize objetos temporários do SQL Server . . . .182
Expressões de tabela comuns . . . .182
Variáveis de tabela . . . .184
Tabelas temporárias . . . .186
Trate erros de T-SQL . . . .187
Palavras-chave de controle de fluxo . . . .189
BEGIN…END . . . .190
IF…ELSE . . . .191
WHILE. . . .191
Resumo . . . .192
Capítulo 15 Views
193
O que são views? . . . .193Crie views indexadas . . . .200
Requisitos de tabela referenciada . . . .200
Requisitos de views indexadas . . . .201
Resumo . . . .202
Capítulo 16 Funções definidas pelo usuário
203
Entenda as funções escalares definidas pelo usuário . . . .204Parametrize funções . . . .204
Execute funções escalares . . . .208
LeBlanc_Iniciais.indd xii
Entenda as funções table-valued . . . .211
Utilize funções table-valued . . . .213
Limitações das funções . . . .213
Resumo . . . .214
Capítulo 17 Stored procedures
215
Trabalhe com stored procedures . . . .216Utilize a palavra-chave EXECUTE . . . .218
Parametrize stored procedures . . . .220
Remova stored procedures . . . .223
Resumo . . . .224
Capítulo 18 Triggers de manipulação de dados
225
Tipos de triggers . . . .225Crie triggers . . . .226
Altere triggers . . . .229
Remova triggers . . . .230
Habilite e desabilite triggers . . . .231
Resumo . . . .232
PARTE VI
REPLICAÇÃO NO SQL SERVER
Capítulo 19 Replicação
235
Tipos de replicação . . . .236 Snapshot . . . .236 Transactional . . . .236 Merge . . . .237 Agentes de replicação . . . .237 Snapshot Agent . . . .237 Distribution Agent . . . .238Log Reader Agent . . . .238
Merge Agent . . . .238
Configure a replicação . . . .238
Monitore a replicação . . . .250
xiv
SumárioPARTE VII
MANUTENÇÃO DE BANCOS DE DADOS
Capítulo 20 Backups
255
Entenda os dispositivos de backup . . . .255
Backups completos do banco de dados . . . .257
Backups diferenciais do banco de dados . . . .262
Backups de logs de transação do banco de dados . . . .264
Restaure bancos de dados . . . .266
Resumo . . . .270
Capítulo 21 Gerenciamento e manutenção de índices e estatísticas 271
Verifique a fragmentação de índices . . . .272Desfragmente índices . . . .272
Reorganize índices . . . .273
Reconstrua índices . . . .275
Verifique a utilização de índices. . . .277
Crie e atualize estatísticas de banco de dados. . . .278
Veja as opções de estatísticas de banco de dados . . . .278
Atualize estatísticas de banco de dados . . . .280
Resumo . . . .281
Capítulo 22 Planos de manutenção
283
Efetue verificações de consistência do banco de dados . . . .283Crie planos de manutenção . . . .284
Utilize o Maintenance Plan Wizard . . . .284
Resumo . . . .289
PARTE VIII GERENCIAMENTO DE BANCO DE DADOS
Capítulo 23 SQL Server Profiler
293
Entenda o SQL Server Profiler . . . .293Usos típicos do SQL Server Profiler . . . .294
Crie rastreamentos . . . .294
Filtre um rastreamento . . . .298
Crie templates de rastreamento . . . .300
Execute rastreamentos no lado do servidor . . . .301
Resumo . . . .302
LeBlanc_Iniciais.indd xiv
Capítulo 24 Extended Events
303
Entenda a arquitetura do Extended Events . . . .303
Crie e configure uma sessão de Extended Events . . . .304
Utilize uma sessão de Extended Events para monitorar o desempenho do sistema . . . .308
Resumo . . . .311
Capítulo 25 Segurança do SQL Server
313
Entenda os principals . . . .314Crie logins de servidor . . . .315
Crie funções de servidor definidas pelo usuário . . . .320
Crie usuários de banco de dados . . . .322
Crie funções de banco de dados predefinidas . . . .325
Configure bancos de dados contidos . . . .327
Crie um usuário contido . . . .329
Vantagens e limitações dos bancos de dados contidos . . . .330
Resumo . . . .331
Capítulo 26 Resource Governor
333
Habilite e desabilite o Resource Governor . . . .334Crie pools de recursos . . . .336
Crie um grupo de carga de trabalho . . . .338
Utilize funções classificadoras . . . .340
Teste funções classificadoras . . . .341
Modifique configurações do Resource Governor . . . .343
Resumo . . . .344
Capítulo 27 SQL Server Agent
345
Componentes do SQL Server Agent . . . .346As opções do SQL Server Agent Configuration Manager . . . .346
Configure propriedades do SQL Server Agent . . . .348
Crie operadores . . . .352
Configure alertas . . . .354
Configure jobs . . . .357
Crie proxies . . . .361
xvi
SumárioCapítulo 28 Database Mail
365
Componentes do Database Mail . . . .365
Configure o Database Mail . . . .366
Envie e-mail com o Database Mail . . . .374
Monitore o Database Mail . . . .376
Resumo . . . .378
Capítulo 29 Triggers de definição de dados
379
Tipos de triggers . . . .379Crie triggers . . . .380
Altere triggers . . . .383
Habilite e desabilite triggers . . . .384
Remova triggers . . . .385
Resumo . . . .386
Capítulo 30 Objetos de gerenciamento dinâmico
387
Recupere metadados do SQL Server a partir de DMOs . . . .387Consulte estatísticas de desempenho do servidor . . . .388
Consulte informações do servidor . . . .390
sys.dm_server_services . . . .390
sys.dm_os_volume_stats . . . .390
sys.dm_os_sys_memory . . . .391
sys.dm_exec_requests e sys.dm_exec_sessions. . . .391
sys.dm_exec_sql_text . . . .391
Consulte informações de desempenho . . . .392
sys.dm_exec_query_stats . . . .392
Consulte estatísticas de indexação . . . .393
sys.dm_db_index_usage_stats . . . .395
sys.dm_db_index_physical_stats . . . .396
Resumo . . . .396
LeBlanc_Iniciais.indd xvi
PARTE IX
SOLUÇÕES DE ALTA DISPONIBILIDADE
Capítulo 31 AlwaysOn
399
Melhorias da instância em cluster de failover . . . .400
Cluster de várias sub-redes . . . .400
Detecção de falhas robusta . . . .401
tempdb na unidade local . . . .401
Crie grupos de disponibilidade AlwaysOn . . . .401
Windows Server Failover Clustering . . . .401
Habilite o AlwaysOn . . . .402
Crie grupos de disponibilidade . . . .403
Administre grupos de disponibilidade AlwaysOn . . . .414
Leia cópias de banco de dados secundárias . . . .418
Resumo . . . .419
Capítulo 32 Log shipping
421
Componentes do log shipping . . . .422Pré-requisitos do log shipping . . . .423
Configure o log shipping . . . .425
Resumo . . . .431