Buscar

SQL Server - Alem do Conceito

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 335 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 335 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 335 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 1 
 
 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 2 
 
 
 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 3 
 
 
 
 
SQL Server: Além do Conceito 
Blog Post Collection 
 
 
 
Diego Nogare – Edvaldo Castro – Demetrio Silva – Marcel Inowe – Marcos 
Freccia – Ivan Lima – Fabiano Amorim – Sulamita Dantas – Marcelo 
Fernandes – Cibelle Castro – Leandro Ribeiro – Luciano Moreira – Nilton 
Pinheiro – Tiago Balabuch – Felipe Ferreira 
 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 4 
 
 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 5 
 
 
 
 
 
SQL Server: Além do Conceito 
Blog Post Collection 
 
Uma coletânea de posts escolhidos 
pelos próprios autores para te 
ajudar nas atividades do dia-a-dia. 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 6 
 
Editor: Diego Nogare 
Introdução: Edvaldo Castro 
Prefácio: Roberto Fonseca 
Capa: Felipe Borges 
Autores: Diego Nogare – Edvaldo Castro – Demetrio Silva – Marcel 
Inowe – Marcos Freccia – Ivan Lima – Fabiano Amorim – Sulamita 
Dantas – Marcelo Fernandes – Cibelle Castro – Leandro Ribeiro – 
Luciano Moreira – Nilton Pinheiro – Tiago Balabuch – Felipe Ferreira 
 
 
 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 7 
 
Introdução 
 
Estar envolvido em uma comunidade é sempre mais importante e proveitoso 
de que viver de um modo isolado, seja nos âmbitos pessoais, profissionais e 
quaisquer outros. A comunidade técnica de profissionais que trabalham com 
produtos e ferramentas ligados à Plataforma de Dados da Microsoft é bem 
atuante e unida, isso faz com que muito conteúdo seja gerado, seja com 
vídeos, eventos, palestras, entrevistas e postagens em blogs. 
 
 
Com esta grande quantidade de material correlacionado, um grupo de 
amigos que aqui denominados "SQL Friends" teve a ideia de reunir seus 
trabalhos em blogs pessoais para criar uma coletânea destes posts e 
entregar em uma única publicação alguns textos de seus blogs. 
 
 
Os assuntos estão direcionados ao que os autores escrevem geralmente em 
seus blogs pessoais, podendo ou não estarem correlacionados entre si. O 
mais interessante, é que em uma mesma publicação, encontra-se um rico e 
variado conteúdo: Administração de Banco de Dados, BI, Performance 
dentre outros. 
 
 
“SQL Server: Além do Conceito - Blog Post Collection" foi idealizado para 
proporcionar uma experiência variada e com conteúdo idem, por isso 
aprecie o conteúdo e se tiver alguma dúvida ou sugestão, fique à vontade 
para entrar em contato direto com o autor, através do blog do mesmo que 
está informado no interior desta publicação. 
 
 
Um ponto importante a ser mencionado, este trabalho por ser voluntário e 
não ter um cunho com fins financeiros, teve uma tratativa diferente mas não 
menos cuidadosa com relação à um livro ordinário. Cada autor é o 
responsável direto pelo que escreveu e publicou na coletânea, mas todos 
estão juntos para proporcionar e compartilhar o conhecimento que 
adquiriram ao longo de vários anos de experiência. 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 8 
 
 
Apesar de NÃO ser um LIVRO formalmente falando, é possível absorver 
conhecimento técnico de alta qualidade escrito pelos autores, exatamente 
como pode ser encontrado em seus respectivos blogs. 
 
 
Aproveite bem, e quaisquer necessidades de contato, não hesite em nos 
enviar uma mensagem. 
 
Boa Leitura, 
 
Edvaldo Castro 
 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 9 
 
 Prefácio 
A presente obra foi cuidadosamente produzida como fruto de diversos anos 
de trabalho e conhecimento dos autores e corresponde a uma compilação 
aprimorada de posts publicados por eles no decorrer dos últimos meses e 
extensivamente testado como parte dos seus esforços em adquirir um 
conhecimento avançado e aprofundado. 
 
O Microsoft SQL Server 2014 é a próxima geração da Plataforma de 
Informação da Microsoft, com novas funcionalidades que entregam um 
melhor desempenho, expandem seus dados para a nuvem e provêem 
estruturas de BI poderosas. O SQL Server 2014 possui dezenas de novas 
funcionalidades e melhorias para DBAs, Desenvolvedores e especialistas em 
Business Intelligence. 
 
O material aqui apresentado tem como finalidade principal servir como base 
de pesquisa para aqueles que têm interesse em entender sobre novas 
funcionalidades e evoluir os seus conhecimentos. Neste livro, você verá 
como o SQL Server 2014 utiliza funcionalidades como o Read Committed 
Snapshot Isolation, Particionamento de Tabelas, Tuning no Sharepoint e SQL 
Server, Importação de Dados com o Integration Services, Auditoria no SQL 
Server, Erros de Instalação, Fragmentação do Transaction Log, uso de 
Snapshots, Deadlocks, conversões e uso de tipos de dados de Datas, 
Contadores de Performance e problemas de rede para entregar uma das 
melhores ferramentas para a tomada de decisão e gerenciamento de bancos 
de dados disponíveis no mercado. 
 
Temos a certeza que esta obra irá contribuir consideravelmente para a 
desmistificação de muitos tópicos considerados complexos, mostrando não 
apenas o significado destes tópicos, mas também mostrando o caminho a 
seguir para a utilização no dia-a-dia. 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 10 
 
Desejamos a todos que tirem o melhor proveito deste excelente trabalho e 
pedimos que nos informem quaisquer imprecisões ou incorreções que 
possam ser encontradas nesta obra através do email 
sqlalemdoconceito@outlook.com, para que possamos sempre manter 
disponível um texto útil e eficaz para o seu aprendizado. 
 
Roberto Fonseca 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 11 
 
MVTech 
O Minha Vida (http://www.minhavida.com.br) é uma empresa com um 
grande propósito: melhorar a qualidade de vida da população. Queremos ser 
capazes de despertar nas pessoas o cuidado com a sua própria saúde. E quando 
falamos em saúde, nos referimos não só à prevenção ou ao tratamento de 
doenças, mas também a pequenas mudanças de hábitos capazes de transformar 
positivamente o dia a dia das pessoas. 
 
Queremos fazer diferença na vida das pessoas! 
 
Pensando nisso, nosso time de tecnologia criou o MVTech, uma 
iniciativa para disseminar conhecimento através de iniciativas de seus 
colaboradores, buscando o aprimoramento do mercado nacional. 
 
Com diversas ações como: artigos técnicos em blogs; matérias para 
portais; respostas em foruns de discussão, palestras em eventos, eventos 
presenciais e online, etc… afinal, somos apaixonados pelo que fazemos! por que 
não compartilhar nossa paixão? 
 
A criação do MVTech dá um passo adiante nesta linha de 
compartilhamento de conhecimento, passando a existir um canal oficial onde 
poderão ser encontrados grandes conteúdos. 
 
 
Seja bem vindo ao MVTech 
Alexandre Tarifa – Diretor de Tecnologia – Minha VidaS Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 12 
 
 
 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 13 
 
Sumário 
EDVALDO CASTRO ............................................................................... 21 
DBA por acidente X Command Line ...................................................................... 21 
“DBA por acidente” ........................................................................................... 21 
READ COMMITTED SNAPSHOT ISOLATION – Aprecie com moderação ................ 24 
“RCSI – Aprecie com moderação” ...................................................................... 24 
MUITO BOM...................................................................................................... 24 
CENÁRIO 1 ........................................................................................................... 25 
RCSI NO CASO DO SR. JOAQUIM ............................................................................... 25 
MAS…................................................................................................................ 26 
CENÁRIO 2 ........................................................................................................... 27 
O PROBLEMA ........................................................................................................ 27 
RCSI NESTE CASO .................................................................................................. 27 
RESUMINDO: ..................................................................................................... 32 
PRÓS E CONTRAS DO RCSI: ...................................................................................... 32 
REFERÊNCIAS .................................................................................................... 33 
Artigos técnicos: O guia definitivo (ou não) .......................................................... 34 
MOTIVAÇÃO ......................................................................................................... 34 
RISCOS E OPORTUNIDADES ....................................................................................... 34 
QUANDO COMEÇAR? ............................................................................................. 35 
PESQUISE ............................................................................................................. 35 
LEIA E ESTUDE MUITO ............................................................................................. 35 
FAÇA CITAÇÕES E REFERÊNCIAS .................................................................................. 36 
REVISÃO PERIÓDICA (NÃO OBRIGATÓRIA) .................................................................... 36 
O ARTIGO TÉCNICO ........................................................................................... 37 
TIPOS DE ARTIGOS TÉCNICOS ............................................................................ 37 
DOCUMENTAÇÃO ................................................................................................... 37 
HOW TO(S) .......................................................................................................... 37 
BENCHMARKS E EXPERIÊNCIAS .................................................................................. 37 
O ARTIGO TÉCNICO EM SI.................................................................................. 38 
ESTRUTURA .......................................................................................................... 38 
LINGUAGEM ......................................................................................................... 38 
PÚBLICO ALVO ...................................................................................................... 38 
GRAMÁTICA ...................................................................................................... 39 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 14 
 
EVITE OS ERROS MAIS COMUNS (DIGITAÇÃO, GÍRIAS, CONCORDÂNCIA, ETC) ......................... 39 
SOLICITE REVISÕES (AMIGOS, COMUNIDADE, PARENTES, SR. JOAQUIM) ............................ 39 
PRINCIPAIS PREOCUPAÇÕES .............................................................................. 40 
SEMPRE ............................................................................................................... 40 
NUNCA ................................................................................................................ 40 
PUBLICIDADE ........................................................................................................ 40 
FAÇA BARULHO ................................................................................................. 41 
CONCLUSÃO ...................................................................................................... 41 
DIEGO NOGARE ................................................................................... 42 
Partition Table ...................................................................................................... 42 
Particionamento de Tabelas .............................................................................. 42 
CENÁRIOS/BENEFÍCIOS ............................................................................................ 44 
DEFINIÇÕES/TERMINOLOGIAS ................................................................................... 45 
CRIANDO FILEGROUP .............................................................................................. 48 
CRIANDO PARTITION FUNCTION ................................................................................ 54 
CRIANDO O PARTITION SCHEME ................................................................................ 56 
CRIANDO A TABELA................................................................................................. 57 
COMPARATIVO DE INSERÇÃO DE DADOS EM UMA TABELA COM COLUMNSTORE INDEX NO SQL 
SERVER 2012 ....................................................................................................... 58 
DEMETRIO SILVA ................................................................................. 73 
Tuning no SharePoint e SQL Server com o Developer Dashboard ........................ 73 
Tunin no SharePoint com Developer Dashboard ............................................... 73 
INTRODUÇÃO .................................................................................................... 73 
CONFIGURAÇÃO .................................................................................................... 74 
Veja a execução do script na figura 3: ............................................................... 76 
Visualizando o Developer Dashboard ................................................................ 76 
CONCLUSÃO ...................................................................................................... 80 
Acessando dados do SharePoint com PowerPivot ................................................ 82 
INTRODUÇÃO .................................................................................................... 82 
REQUISITOS .......................................................................................................... 82 
COMO FUNCIONA .................................................................................................. 82 
IMPORTAR PARA O POWERPIVOT NO EXCEL ................................................................. 85 
CONCLUSÃO ...................................................................................................... 91 
Configurar envio de e-mail no SharePoint / SQL Server com o GMAIL ................. 92 
 
S Q L S e r v e r : A l ém d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 15 
 
PASSO 1: CONFIGURAR O SMTP SERVER NO WINDOWS 2008 ........................................ 92 
MARCEL INOWE ................................................................................ 101 
Dicas sobre o banco de dados do Protheus(Totvs) ............................................. 101 
VAMOS AS DICAS: ................................................................................................ 101 
MARCOS FRECCIA ............................................................................. 105 
Importando arquivos excel usando o SSIS .......................................................... 105 
T-SQL no SQL Server 2012 – Parte 1 .................................................................... 113 
1) EXECUTE WITH RESULT SETS ....................................................................... 113 
VAMOS VER COMO FUNCIONA? ............................................................................... 113 
2) SEQUENCE .................................................................................................. 115 
COMO UTILIZAR? ................................................................................................. 116 
PASSO 1: CRIAÇÃO DA SEQUENCE. ........................................................................... 116 
COMO UTILIZAMOS A SEQUENCE? ............................................................................ 116 
RESULTADO. ....................................................................................................... 118 
T-SQL no SQL Server 2012 – Parte 2 – Paginação de dados ................................ 120 
CONSULTA 1 ....................................................................................................... 121 
CONSULTA 2 ....................................................................................................... 122 
IVAN LIMA ......................................................................................... 124 
Inside The Machine – Introdução ....................................................................... 124 
VELOCIDADE DO PROCESSADOR É TUDO? ................................................................... 124 
REFERÊNCIAS: ................................................................................................. 128 
Inside the Machine – Processadores................................................................... 129 
INTRODUÇÃO .................................................................................................. 129 
PROCESSADORES ................................................................................................. 129 
OVERVIEW DA MICROARQUITETURA......................................................................... 129 
CORE E UNCORE .................................................................................................. 130 
PLANTA ............................................................................................................. 130 
XEON E7 ........................................................................................................... 131 
CORE I5 460M ................................................................................................... 132 
MOORE’S LAW .................................................................................................... 133 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 16 
 
COMPLEXIDADE ................................................................................................... 135 
GPGPU ............................................................................................................ 135 
CACHE............................................................................................................... 135 
REFERÊNCIAS .................................................................................................. 135 
Inside The Machine - Hyper-Threading (SMT) e SQL Server ................................ 137 
TEORIA E PRÁTICA ................................................................................................ 138 
MITO ................................................................................................................ 138 
PROCESSADORES ................................................................................................. 138 
REFERÊNCIAS: ................................................................................................. 139 
FABIANO NEVES AMORIM ................................................................. 140 
Join reordering e Bushy Plans ............................................................................. 140 
INTRODUÇÃO .................................................................................................. 140 
JOIN REORDERING E BUSHYPLANS ............................................................................ 140 
BUSHY PLANS NO SQL SERVER ............................................................................... 141 
STATISTICS IO: ................................................................................................. 144 
PLANO ESTIMADO: ............................................................................................... 145 
STATISTICS IO: ................................................................................................. 149 
STATISTICS IO: ................................................................................................. 150 
STATISTICS IO: ................................................................................................. 152 
STATISTICS IO: ................................................................................................. 153 
CONCLUSÃO .................................................................................................... 154 
NOTA IMPORTANTE: ............................................................................................. 154 
REFERÊNCIAS .................................................................................................. 154 
SULAMITA DANTAS ........................................................................... 155 
Policy Based Management ................................................................................. 155 
MARCELO FERNANDES ...................................................................... 162 
Solucionando Problemas: Error Failed to open loopback connection ao executar 
SP_READERRORLOG ........................................................................................... 162 
INTRODUÇÃO .................................................................................................. 162 
SINTOMA ........................................................................................................... 162 
CAUSA .............................................................................................................. 162 
SOLUÇÃO ........................................................................................................... 163 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 17 
 
LEITURAS ADICIONAIS ............................................................................................ 164 
Error to install SQL Server 2008 on Windows 2012............................................. 165 
Token Bloat - Cannot generate SSPI context....................................................... 171 
PROBLEMA ......................................................................................................... 171 
COMO RESOLVER ................................................................................................. 176 
EM CADA ESTAÇÃO ...............................................................................................176 
LEITURAS ADICIONAIS ..................................................................................... 177 
CIBELLE CASTRO ................................................................................ 178 
Auditoria ............................................................................................................. 178 
Descobrindo Auditoria no SQL Server 2008 ..................................................... 178 
POR QUE UTILIZAR AUDITORIA? ............................................................................... 178 
PODE SER FEITO ATRAVÉS DE SCRIPTS. ....................................................................... 179 
NOTA 01: .......................................................................................................... 179 
COMO O SQL SERVER AUDIT TRABALHA? .................................................................. 179 
NOTA 02: .......................................................................................................... 181 
NOTA 03: .......................................................................................................... 184 
DATABASE AUDIT SPECIFICATIONS .................................................................. 184 
NOTA 03: .......................................................................................................... 186 
PASSA A PASSO DE COMO CRIAR UMA AUDITORIA........................................................ 187 
FAREMOS ESSAS CONFIGURAÇÕES DO SERVER AUDIT ATRAVÉS DE TSQL E O MANAGEMENT 
STUDIO.............................................................................................................. 193 
CRIANDO UM SERVER OU SERVER AUDIT SPECIFICATION. .............................................. 200 
CRIANDO UM SERVER OU DATABASE AUDIT SPECIFICATION. .......................................... 206 
CONCLUSÃO .................................................................................................... 213 
REFERÊNCIAS .................................................................................................. 213 
Performance e Desempenho .............................................................................. 215 
System Monitor & SQL Profiler ........................................................................ 215 
O QUE É O SYSTEM MONITOR? ............................................................................... 215 
NOTA 1: ............................................................................................................ 215 
NOTA 2 ............................................................................................................. 217 
COMO CRIAR UM DATA COLLETOR SETS? .................................................................. 218 
PARA CRIAR UM DATA COLLETOR SETS PERSONALIZADO, SIGA OS PASSOS ABAIXO: .............. 218 
SQL SERVER PROFILER ..................................................................................... 225 
O QUE É O TRACE? ............................................................................................... 225 
NOTA 4: ............................................................................................................ 228 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 18 
 
COMO APLICAR FILTROS NO SQL PROFILER? .............................................................. 230 
PERFORMANCE X MONITORAMENTO ....................................................................... 231 
DICA: ................................................................................................................ 231 
CRIANDO TRACES ................................................................................................. 231 
DICA *: ............................................................................................................. 239 
CONCLUSÃO .................................................................................................... 239 
REFERÊNCIAS .................................................................................................. 239 
Restore Database com SSIS ................................................................................ 241 
FTP COM WINSCP .............................................................................................. 242 
EXECUTE PROCESS TASK ........................................................................................ 244 
CRIAÇÃO VARIÁVEIS NO SSIS .................................................................................. 247 
FOREACH LOOP CONTAINER ................................................................................... 248 
EXECUTE SQL TASK (DELETE DATABASE) .............................................................. 250 
EXECUTE SQL TASK (RESTORE DATABASE / USER PERMISSION) ............................ 253 
EXECUTE PROCESS TASK (MODIFY NAME FTP FILE) ................................................ 255 
LEANDRO RIBEIRO ............................................................................. 256 
Fragmentação do Transaction Log - Parte I......................................................... 256 
INTRODUÇÃO .................................................................................................. 256 
TRANSACTION LOG ............................................................................................... 257 
Fragmentação do Transaction Log - Parte II........................................................ 260 
DICA: ................................................................................................................ 264 
VAMOS TESTAR! .................................................................................................. 267 
INFORMAÇÃO ADICIONAL ....................................................................................... 271 
MELHORES PRÁTICAS: ........................................................................................... 271 
LUCIANO MOREIRA ........................................................................... 273 
O caso dos snapshots e data cache thrashing ..................................................... 273 
DATA CACHE E O DATABASE SNAPSHOT. ......................................................... 273 
SCRIPT 1 – CRIAÇÃO DOS BANCOS DE DADOS .............................................................. 273 
SCRIPT 3 – RESULTADO DE IO PARA AS CONSULTAS ...................................................... 275 
SCRIPT 4 – CONSULTANDO O DATA CACHE ................................................................. 275 
DATA CACHE THRASHING ................................................................................ 276 
SCRIPT 5 – CRIANDO DIVERSOS SNAPSHOTS E MAX SERVER MEMORY ................................ 276 
SCRIPT 6 – UTILIZANDO O ESPAÇO DO DATA CACHE ...................................................... 277 
SCRIPT 7 – DATA CACHE THRASHING ........................................................................ 278 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 19 
 
Trigger causando deadlocks ................................................................................ 279 
PERGUNTA: INDEXAÇÃO PODE ELIMINAR PROBLEMAS DE DEADLOCKS? .............................. 279 
ENTÃO PERGUNTO: AONDE ESTÁ O DEADLOCK? ........................................................... 280 
ENCONTRANDO O DEADLOCK .................................................................................. 280 
MINIMIZANDO OS DEADLOCKS ................................................................................ 282 
RESOLVENDO O PROBLEMA (DE VERDADE) ................................................................. 284 
CONCLUSÃO .................................................................................................... 285 
VARCHAR(MAX)vs. TEXT (Sintaxe?) ................................................................... 287 
SCRIPT 01 – DUAS TABELAS IDÊNTICAS, VARCHAR(MAX) E TEXT ................................ 287 
SCRIPT 02 – ANALISANDO AS UNIDADES DE ALOCAÇÃO ................................................. 289 
SCRIPT 03 – SP_TABLEOPTION PARA LARGE VALUES ..................................................... 289 
NILTON PINHEIRO ............................................................................. 293 
Trabalhando com datas e conversões no SQL Server ......................................... 293 
OS TIPOS DE DADOS DATETIME E SMALLDATETIME ..................................................... 293 
ENTENDENDO O ARMAZENAMENTO DOS VALORES DATA E HORA...................................... 294 
TRABALHANDO COM A PARTE DATA .......................................................................... 296 
LISTAGEM 1. SCRIPT PARA CRIAÇÃO E POPULAÇÃO DA TABELA DE PEDIDOS ........................ 297 
FUNÇÕES E CONVERSÕES ....................................................................................... 299 
TRABALHANDO COM A PARTE HORA ......................................................................... 302 
CONCLUSÃO .................................................................................................... 305 
Monitorando alterações de Dados com a Cláusula OUTPUT .............................. 306 
DICAS PARA A UTILIZAÇÃO DO OUTPUT ................................................................... 311 
TIAGO BALABUCH ............................................................................. 313 
PERFORMANCE COUNTER - SUBSISTEMA DE DISCOS ......................................... 313 
UTILIZAÇÃO DE DISCO ........................................................................................... 313 
OS CONTADORES UTILIZADOS PARA MEDIR AS INFORMAÇÕES SÃO: ................................... 313 
TEMPO DE RESPOSTA ............................................................................................ 314 
REFERÊNCIAS: ................................................................................................. 315 
PROBLEMAS DE REDE – ASYNC_NETWORK_IO ................................................... 316 
OBJETIVO ........................................................................................................... 316 
ANÁLISE INICIAL – BANCO DE DADOS: ...................................................................... 316 
ANÁLISE INICIAL – WEB: ....................................................................................... 317 
ANÁLISE DETALHADA ............................................................................................ 318 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 20 
 
OS CONTADORES UTILIZADOS FORAM:....................................................................... 318 
AMBIENTE DE BANCO DE DADOS .................................................................... 319 
AMBIENTE WEB............................................................................................... 322 
RESOLUÇÃO ........................................................................................................ 323 
CONCLUSÃO .................................................................................................... 323 
REFERÊNCIAS: ................................................................................................. 324 
Suspect database - MSDTC in-doubt transaction ................................................ 325 
PROBLEMA ...................................................................................................... 325 
RESOLUÇÃO .................................................................................................... 326 
CONCLUSÃO .................................................................................................... 327 
REFERÊNCIAS: ..................................................................................................... 328 
FELIPE FERREIRA ............................................................................... 329 
A carreira de DBA está morrendo? ..................................................................... 329 
NO MERCADO DE HOJE NÓS TEMOS DOIS PROBLEMAS MUITO COMUNS: ............................ 329 
Criando um datawarehouse para testes ............................................................. 331 
PASSO 1: ........................................................................................................... 331 
PASSO 2: ........................................................................................................... 332 
PASSO 3: ........................................................................................................... 333 
PASSO 4: ........................................................................................................... 334 
 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 21 
 
Edvaldo Castro 
www.edvaldocastro.com 
DBA por acidente X Command Line 
“DBA por acidente” 
 
Começo o texto de hoje falando um pouco deste que é um termo muito 
comum em rodas de conversas de DBAs e profissionais que se dedicam a 
fazer bem feito e com excelência aquilo que se propõe a fazer, neste caso 
mais especificamente falando, ser um DBA cada vez melhor… Abro aqui um 
parêntese para indicação de leitura – “How to become an exceptional DBA”. 
O “DBA por acidente”, as vezes nem mesmo sabe que é um DBA, a ele são 
atribuídas atividades de um DBA em paralelo às suas obrigações e quando 
menos se dá conta, já está atuando única e exclusivamente com a 
Administração do SGBD (Aqui, leia-se SQL Server). 
Pelo fato de o SQL Server, diferente da maioria dos demais SGBDs, ter uma 
interface amigável e bastante intuitiva, muitos dos DBAs do tipo supracitado, 
ao executarem tarefas cotidianas e relativamente simples do dia-a-dia (tais 
como: backup, restore, criação de base nova, etc), simplesmente se 
acomodam e deixam de buscar conhecimento e entendimento a fundo do 
funcionamento da ferramenta, de possíveis problemas e soluções para 
poder atuar de forma mais rápida e efetiva. 
Em outros SGBDs, como por exemplo: Oracle e DB2, a administração da 
ferramenta geralmente é de certa forma mais complexa e requer maior 
conhecimentos das particularidades destas, e talvez por este motivo, seja 
muito mais comum a existência de “DBAs por acidente” no mundo SQL 
Server. 
Ainda que o Microsoft SQL Server ofereça uma interface super amigável e 
fácil de trabalhar, uma boa forma de se livrar das armadilhas do vício na 
interface gráfica que “facilita” muito a vida do DBA, é começar a olhar como 
as coisas funcionam em background. Por exemplo, ao executar um backup 
simples de uma base de dados via SSMS (SQL Server Management Studio), 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 22 
 
porque não gerar um script da execução deste backup e das próximas vezes 
que se for executar um backup simples, fazê-lo via T-SQL apenas alterando o 
script previamente gerado? Com o tempo, naturalmente este comando de 
backup será memorizado e não haverá mais a necessidade da dependência 
da interface para execução desta atividade… 
Um dos pontos, é o conhecimento dos códigos gerados por tras de cada 
instrução submetida via interface gráfica, mas o estudo e conhecimento 
daquilo que se faz (neste caso, Administrar Banco de Dados (SQL Server)), vai 
muito além disto. Neste post, estou dando ênfase à utilização de códigos nas 
atividades do dia-a-dia de um DBA, pois acredito ser este um grande passo 
para se deixar o rótulo de“DBA por acidente” para se tornar um profissional 
cada vez melhor e saber exatamente aquilo que se está fazendo… 
Posso citar inúmeras vantagens, na utilização de códigos de comando ao 
invés de interfaces gráficas, mas em minha opinião, destacam-se os 
seguintes fatores: 
Produtividade: Particularmente depois que se adquire prática, é muito mais 
rápido criar um usuário, executar um backup ou restore via T-SQL do que 
efetuar diversos cliques na tela, para realizar estas tarefas. 
Escalabilidade: Para fazer uma operação de backup/restore, pode ser 
pequena a diferença de tempo gasto usando tanto interface quanto T-SQL, 
porém tente fazer uma operação destas com dezenas ou até mesmo 
centenas de bases (e acredite, existem muitos cenários para isto). 
Flexibilidade: Se você é um DBA que usa única e exclusivamente a interface 
gráfica do SSMS e mal sabe como as coisas acontecem nos códigos 
executados por suas “telinhas”, é bem possível que suas mãos ficarão 
literalmente atadas caso você se depare com um servidor onde o SQL Server 
esteja devidamente instalado, mas não haja o SSMS. Caso você não seja 
totalmente dependente da ferramenta gráfica, você poderá (em casos 
extremos) trabalhar normalmente conectando-se via SQLCMD. 
Além dos três fatores supracitados, existem outros diversos, porém não é a 
intenção ficar enumerando o que considero melhor ou pior em cada um dos 
meios de administração do SQL Server. 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 23 
 
Na minha visão a relação existente entre um DBA por acidente e Linhas de 
código, é que normalmente DBAs por acidente não se preocupam em 
entender como a coisa funciona, e por isto, geralmente continuam a sempre 
fazer a mesma tarefa, da mesma maneira, enquanto aqueles que se propõe 
a ser excelentes profissionais, sempre estão correndo atras de entendimento 
e fugindo das limitações impostas (neste caso, falando sobre utilizar única e 
exclusivamente, Interface Gráfica). 
Sinceramente, não tenho nada contra quem utiliza interface gráfica, desde 
que o faça por preferência, e não por limitação de não saber fazer de outra 
maneira. É fato que ninguém nasce sabendo, ou com Master degree em 
nada, mas nunca é tarde para começar a correr atras do prejuízo… 
A intenção do texto realmente não foi em ser técnico, apenas externar algo 
que penso com relação ao assunto que se faz presente nos meios 
profissionais… 
 
Grande abraço, 
 
Edvaldo Castro 
http://edvaldocastro.com 
 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 24 
 
READ COMMITTED SNAPSHOT ISOLATION – Aprecie 
com moderação 
“RCSI – Aprecie com moderação” 
 
“Não existe almoço grátis” 
“Muito cuidado com as armadilhas do RCSI” 
 
O início proposital deste post é para demonstrar alguns dos benefícios e 
também os pontos de atenção com a possibilidade da alteração do 
comportamento padrão de uma base de dados no SQL Server, quando se 
trata de concorrência e isolamento das transações. 
Por padrão, o SQL Server tem um comportamento “Pessimista”, onde o nível 
de isolamento padrão é o “Read Committed”, o que basicamente faz com 
que o SQL Server tenha um número maior de locks, reduzindo a concorrência 
entre as transações. 
Acesse (https://msdn.microsoft.com/en-
us/library/ms189122(v=sql.105).aspx) para um overview nos Níveis de 
Isolamento no SQL Server. 
 
MUITO BOM 
Resumidamente, o Read Committed Snapshot Isolation (RCSI), trabalha com 
o versionamento de registros, utilizando-se da tempdb para tal, fazendo com 
que o comportamento “Pessimista” do nível de isolamento “Read 
Committed” onde Leitores (Select) bloqueiam Escritores (Insert, Update e 
Delete), e vice-versa, seja substituído por padrão na base em que foi ativado 
o RCSI para o comportamento “Otimista”, onde Leitores (Select) e Escritores 
(Insert, Update, Delete) não se bloqueiam. 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 25 
 
Quando há concorrência entre um Updates e Selects submetidos a um 
mesmo registro, é gerado uma versão comitada do registro, que então esta 
é lida da pela transação que entrou em segundo lugar. 
Esta alteração do corportamento Pessimista para Otimista, pela habilitação 
do RCSI não acaba com bloqueios entre escritores (update x update) e 
também não evita bloqueios onde há verificação de constraints (foreign 
Keys, por exemplo). 
Quando leva-se em consideração o Read Committed Snapshot Isolation Level 
apenas até os pontos aqui exibidos, não há mais o que se pensar, pode se ter 
a falsa ideia de solução para todos os problemas de concorrência e bloqueios 
e a ideia de ativá-lo imediatamente em todas as bases SQL Server da 
instância é demasiadamente tentadora. 
Para Exemplificar melhor, segue uma citação de quando o problema é 
solucionado habilitando-se o RCSI. 
 
CENÁRIO 1 
Na padaria do Sr. Joaquim, são produzidos 1.000.000 de pães por dia, e o 
sistema de panificação automaticamente faz um update na tabela de pães 
produzidos naquele dia. Esporadicamente o Sr. Joaquim gosta de tirar 
relatórios para saber a quantidade produzida até então, porém, seus 
relatórios ficam bloqueados por muito tempo, visto que os updates são 
constantes e demorados. 
 
RCSI NO CASO DO SR. JOAQUIM 
Neste caso específico, a habilitação do RCSI pode minimizar drasticamente 
os problemas do Sr. Joaquim com a lentidão de seus relatórios, uma vez que 
seus “selects” não mais esperarão pelos “updates” automáticos realizados 
pelo moderno sistema de fabricação de pães. 
Os updates continuam sendo realizados com a mesma frequência, e apenas 
bloqueando-se entre si quando necessários (lembrando que o RCSI não evita 
bloqueios entre updates), e quando o Sr. Joaquim submeter um select 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 26 
 
envolvendo os registros bloqueados, ele receberá o resultados dos últimos 
comitados e não serão considerados aqueles com transações em aberto. 
 
MAS… 
 
Porém, como mencionado no início deste post… 
 
“Não existe almoço grátis”… 
“Muito cuidado com as armadilhas do RCSI”… 
 
Adiciono mais uma… 
 
“Coisas estranhas podem acontecer” 
 
Não são raras as vezes em que os bloqueios e esperas são benéficos e 
necessários, para se evitar erros de negócios ou até mesmo inconsistências 
no valor dos dados de sua base. 
O Read Committed Snapshot Isolation, é uma excelente opção, fantástica e 
que é passível sim, de ser habilitada na maioria das bases de dados da 
maioria dos ambientes com SQL Server, porém é necessário um 
levantamento cauteloso dos pontos onde podem incorrer problemas pela 
habilitação deste “comportamento” de uma base de dados do SQL Server. 
Um dos maiores pontos de atenção é que o RCSI é habilitado para a base 
inteira, fazendo com que o nível de isolamento das transações para esta 
base, seja por padrão alterado. Para que se tenha níveis de isolamento 
diferentes, é necessário que estes sejam informados dentro das transações 
submetidas. 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 27 
 
Vale ressaltar que apesar dos cuidados, custos e advertências supracitados, 
normalmente a relação CUSTO X BENEFÍCIO vale a pena e os problemas em 
potencial são poucos, em relação aos benefícios com o uso do RCSI. 
Para facilitar um pouco o entendimento, segue uma descrição de um casoonde o RCSI pode causar um grande problema. 
 
CENÁRIO 2 
Uma empresa tem um programa conjunto entre as áreas Financeira e RH, de 
empréstimo de dinheiro da própria empresa a seus empregados, com 
desconto em folha de pagamento. As regras para que o colaborador possa 
pegar dinheiro, são bem simplistas e a principal delas, é que o e mesmo 
esteja empregado. 
 
O PROBLEMA 
João Castro, trabalhou por 10 anos na empresa referida, e um belo dia foi 
chamado pelo RH que lhe agradeceu pelos serviços e o demitiu. Sabendo 
João que a empresa tinha o programa de empréstimos e que o Depto 
Financeiro era logo na sala ao lado, passou diretamente no financeiro e 
pegou 20 mil reais que foi prontamente liberado. João acabava de ser 
demitido e receber 20 mil reais em empréstimo, que não pagaria nunca, visto 
que não teria mais vínculo com a empresa. 
 
RCSI NESTE CASO 
Supondo que existam 2 Tabelas envolvidas no processo: 
TB_PESSOA 
TB_EMPRESTIMO 
O processo de empréstimo verifica se a pessoa está empregada ou não 
(TB_PESSOA) para liberar o dinheiro (TB_EMPRESTO). 
Hipoteticamente falando, João por demitido por alguém do RH que abriu o 
sistema para atualizar o status para “DEMITIDO”, mas antes de executar 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 28 
 
o commit da transação, resolveu ir tomar um café e a deixou aberta. João foi 
ao Depto Financeiro, alguém deste departamento abriu uma transação para 
liberar empréstimo, foi consultar na tabela TB_PESSOA se João estava 
empregado e recebeu como resultado “EMPREGADO”, visto que uma 
transação de update já estava aberta, porém não havia sido comitada. 
Quando o alguém do RH voltou, salvou via sistema a demissão de João, 
alterando seu status para “DEMITIDO”, porém o campo 
SITUACAO_EMPRESTIMO na tabela TB_EMPRESTIMO estava como 
“LIBERADO”. 
Neste caso específico, o bloqueio deveria acontecer e a transação de 
liberação do empréstimo obrigatoriamente deveria ser bloqueada pela 
alteração na tabela que informa se a pessoa está empregada ou não. 
Ainda assim, este não seria um empecilho para a habilitação do RCSI na base, 
visto que é possível forçar com um HINT que a espera aconteça. 
Foram criados Scripts para demonstração do caso citado que podem ser 
baixados pelo endereço: http://edvaldocastro.com/rcsi-2/ 
Ou visualizados no trecho de código abaixo. 
 
–CRIAÇÃO DO AMBIENTE PARA OS TESTES 
–CRIAÇÃO DA BASE 
USE master 
GO 
IF db_id(‘DEMO_RCSI’) IS NOT NULL 
DROP DATABASE DEMO_RCSI 
GO 
CREATE DATABASE DEMO_RCSI 
ON PRIMARY 
(NAME = ‘DEMO_RCSI_Data’,FILENAME = ‘C:TEMPDE
MO_RCSI.mdf’,SIZE = 128 MB) 
LOG ON 
(NAME = ‘DEMO_RCSI_Log’, FILENAME = ‘C:TEMPDE
MO_RCSI.ldf’,SIZE = 128 MB) 
GO 
USE DEMO_RCSI 
GO 
–CRIA A TABELA PESSOA 
IF object_id(‘TB_PESSOA’) IS NOT NULL 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 29 
 
DROP TABLE TB_PESSOA 
GO 
CREATE TABLE TB_PESSOA 
( 
ID_PESSOA INT IDENTITY CONSTRAINT PK_TB_PESSO
A_ID_PESSOA PRIMARY KEY 
,DATA_CONTRATACAO DATE DEFAULT GETDATE() 
,NOME_PESSOA VARCHAR(60) 
,BOL_EMPREGADO CHAR(1) 
) 
GO 
–CRIA A TABELA EMPRESTIMO 
IF object_id(‘TB_EMPRESTIMO’) IS NOT NULL 
DROP TABLE TB_EMPRESTIMO 
GO 
CREATE TABLE TB_EMPRESTIMO 
( 
ID_EMPRESTIMO INT IDENTITY CONSTRAINT PK_TB_E
MPRESTIMO_ID_EMPRESTIMO PRIMARY KEY 
,ID_PESSOA INT –CONSTRAINT 
FK_TB_PESSOA_TB_EMPRESTIMO FOREIGN KEY 
REFERENCES TB_PESSOA (ID_PESSOA) 
,VALOR_EMPRESTIMO DECIMAL(10,2) 
,LIBERACAO_EMPRESTIMO CHAR(1) 
) 
–EXISTE O NÍVEL DE ISOLAMENTO 
–EXIBE INFORMAÇÃO SOBRE O NIVEL DE ISOLAMENTO 
ATUAL 
SELECT NAME 
,CASE is_read_committed_snapshot_on 
 WHEN 1 THEN ‘ENABLED’ 
 WHEN 0 THEN ‘DISABLED’ 
 END 
AS ‘Read_Committed_Snapshot’ 
FROM SYS.DATABASES 
WHERE NAME = ‘DEMO_RCSI’ 
 
–CARREGA DADOS NA TABELA PESSOA 
INSERT INTO TB_PESSOA (NOME_PESSOA, BOL_EMPRE
GADO) 
VALUES (‘JOAO CASTRO’,‘S’) 
 ,(‘MANOEL MAIA’,‘S’) 
 ,(‘BENEDITO LIMA’,‘N’) 
 ,(‘MARIA CASTRO’,‘N’) 
 ,(‘CLEONTINA OLIVEIRA’,‘S’) 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 30 
 
 ,(‘CANDIDO DUARTE’,‘S’) 
–ALTERA O NÍVEL DE ISOLAMENTO PARA RCSI 
USE master 
ALTER DATABASE DEMO_RCSI SET READ_COMMITTED_S
NAPSHOT ON 
–EXIBE DADOS DA TABELA PESSOA 
SELECT * FROM TB_PESSOA 
–
ID_PESSOA DATA_CONTRATACAO NOME_PESSOA 
 BOL_EMPREGADO 
–1 2013-07-27 JOAO 
CASTRO S 
–2 2013-07-27 MANOEL 
MAIA S 
–3 2013-07-27 BENEDITO 
LIMA N 
–4 2013-07-27 MARIA 
CASTRO N 
–5 2013-07-27 CLEONTINA 
OLIVEIRA S 
–6 2013-07-27 CANDIDO 
DUARTE S 
–ALTERA NÍVEL DE ISOLAMENTO 
–ALTER DATABASE DEMO_RCSI SET 
READ_COMMITTED_SNAPSHOT ON 
–ALTER DATABASE DEMO_RCSI SET 
READ_COMMITTED_SNAPSHOT OFF 
 
/*——————————————————————————*/ 
TRANSAÇÃO T1 
–TRANSAÇÃO DE DEMISSÃO (T1) 
–EXIBE INFORMAÇÃO SOBRE O NIVEL DE ISOLAMENTO 
ATUAL 
SELECT NAME 
,CASE is_read_committed_snapshot_on 
 WHEN 1 THEN ‘ENABLED’ 
 WHEN 0 THEN ‘DISABLED’ 
END AS ‘Read_Committed_Snapshot’ 
FROM 
SYS.DATABASES 
WHERE NAME = ‘DEMO_RCSI’ 
– PARA ALTERAR PARA O RCSI 
–USE MASTER 
–ALTER DATABASE DEMO_RCSI SET 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 31 
 
READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK 
IMMEDIATE 
–INICIO DA TRANSAÇÃO DE UPDATE 
BEGIN TRAN T1 
SELECT * FROM TB_PESSOA 
WHERE NOME_PESSOA = ‘JOAO CASTRO’ 
USE DEMO_RCSI 
GO 
UPDATE P 
SET P.BOL_EMPREGADO = ‘N’ 
FROM TB_PESSOA P 
WHERE NOME_PESSOA = ‘JOAO CASTRO’ 
GO 
SELECT * FROM TB_PESSOA 
WHERE NOME_PESSOA = ‘JOAO CASTRO’ 
 
–ROLLBACK TRAN T1 
–COMMIT TRAN T1 
–ABRA A SEGUNDA TRANSAÇÃO EM UMA NOVA JANELA 
(NEW QUERY)E FAÇA A OPERAÇÃO DE EMPRESTIMO 
(T2) 
/*——————————————————————————*/ 
 
TRANSAÇÃO T2 
–TRANSAÇÃO DE EMPRÉSTIMO (T2) 
—- GARANTIR QUE ESTEJA COM RCSI HABILITADO 
–USE MASTER 
–ALTER DATABASE DEMO_RCSI SET 
READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK 
IMMEDIATE 
–GO 
—————————————————————————————— 
–INICIO DA TRANSAÇÃO DE UPDATE 
BEGIN TRAN T2 
USE DEMO_RCSI 
GO 
INSERT INTO TB_EMPRESTIMO 
SELECT ID_PESSOA, ‘20000’,‘S’ 
FROM TB_PESSOA P 
WHERE NOME_PESSOA = ‘JOAO CASTRO’ 
COMMIT TRAN T2 
—————————————————————————————— 
SELECT * FROM TB_EMPRESTIMO 
SELECT * FROM TB_PESSOA 
—————————————————————————————— 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 32 
 
–VEJA O RESULTADO ANTES DO COMMIT DA T1 
(TRANSAÇÃO DE DEMISSÃO) 
SELECT P.ID_PESSOA, P.NOME_PESSOA, E.VALOR_EM
PRESTIMO, P.BOL_EMPREGADO,E.LIBERACAO_EMPREST
IMO 
FROM TB_EMPRESTIMO E 
JOIN TB_PESSOA P 
ON E.ID_PESSOA = P.ID_PESSOA 
 
 
 
—————————————————————————————— 
–EXECUTE O COMMIT DA TRANSAÇÃO T1 E RODE 
NOVAMENTE O RESULTADO. OBSERVER QUE HÁ ERRO 
DE NEGÓCIO 
–POIS FOI LIBERADO EMPRÉSTIMOI PARA UMA 
PESSOA QUE NÃO ESTÁ EMPREGADA. 
SELECT P.ID_PESSOA, P.NOME_PESSOA, E.VALOR_EM
PRESTIMO, P.BOL_EMPREGADO,E.LIBERACAO_EMPREST
IMO 
FROM TB_EMPRESTIMO E 
JOIN TB_PESSOA P 
ON E.ID_PESSOA = P.ID_PESSOA 
 
 
 
RESUMINDO: 
 
PRÓS E CONTRAS DO RCSI: 
Reduz consideravelmente problemas provenientes de bloqueios. 
Habilitação fácil e rápida. 
Contras do Read Committed Snapshot Isolation: 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 33 
 
Não é útil embloqueios entre transações de update. 
Bloqueios com verificação de constraints também não são beneficiados. 
Pode resultar com algum erro negocial não esperado, caso não seja bem 
mapeado. 
 
CONCLUSÃO: 
 
O RCSI é passível de utilização em qualquer ambiente, desde que os “poréns” 
sejam bem mapeados e os erros provenientes sejam mitigados, com o uso 
de HINTS (Ex: (SELECT * FROM TABELA WITH (READCOMMITTED)), Alterando 
o nível de isolamento nas transações que necessitam que os bloqueios 
aconteçam entre outros meios que podem ser utilizados. 
 
READ COMMITTED SNAPSHOT ISOLATION – APRECIE COM MODERAÇÃO 
 
REFERÊNCIAS 
 
http://msdn.microsoft.com/pt-br/library/ms173763.aspx 
http://msdn.microsoft.com/en-us/library/tcbchxcb(v=VS.80).aspx 
 
Grande abraço, 
 
Edvaldo Castro 
http://edvaldocastro.com 
 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 34 
 
Artigos técnicos: O guia definitivo (ou não) 
 
Estar presente e participar ativamente de uma comunidade, sempre ajuda 
no crescimento das pessoas, seja ele profissional, pessoal, religioso ou 
quaisquer outros âmbitos. Para quem trabalha na área de TI 
particularmente, esta participação pode culminar em uma curva de 
aprendizado e crescimento profissional muito mais acentuada do que se o 
profissional se isolar e caminhar sozinho na carreira. 
Basicamente é possível participar de comunidades consumindo informações 
compartilhadas e compartilhando informações e conhecimentos. Algumas 
das principais formas de compartilhar conhecimento e informações são: 
Palestras (presenciais e online), Redes Socais em geral, vídeos, Wiki e Blogs 
com postagens técnicas. 
Para aqueles que se aventuraram, ou desejam se aventurar com a redação e 
compartilhamento de textos técnicos, a seguir existe uma serie de pontos 
importantes que devem ser observados na intenção de que erros sejam 
evitados e uma melhor qualidade seja alcançada. 
 
MOTIVAÇÃO 
Existem diversos motivos que podem e levam profissionais à iniciarem uma 
efetiva participação em comunidades técnicas e criarem seus próprios blogs 
pessoais, ou mesmo escreverem para canais já bem conhecidos. Com 
motivações diferentes, geralmente os objetivos são comuns: exposição 
profissional, compartilhamento de conhecimento, networking e 
reconhecimento. Abaixo, alguns pontos que são relevantes e que podem 
influenciar direta ou indiretamente os resultados desta decisão de tornar-se 
público através principalmente de artigos técnicos. 
 
R ISCOS E OPORTUNIDADES 
A “Exposição Profissional” proveniente da decisão de escrever artigos 
técnicos é ambígua, ou seja, pode ser uma excelente oportunidade de se 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 35 
 
criar um ótimo círculo de contatos profissionais, networking de alto nível e 
gerar grandes benefícios nos âmbitos profissional e pessoal, porém esta 
mesma “Exposição Profissional” pode ser extremamente perigosa e 
prejudicial à carreira do profissional, caso este não tome alguns cuidados 
básicos na hora de expor-se através de seus textos, por exemplo: Textos não 
fidedignos, com erros de português, dentre outros graves erros que estão 
melhor detalhados adiante, neste artigo. 
 
QUANDO COMEÇAR? 
Tendo-se conhecimentos dos riscos e oportunidades, e considerando-se 
apto a dar início ao trabalho de compartilhamento de informações via textos 
técnicos (ou não), existem alguns importantes pré-requisitos a serem 
seguidos, para aumentar a probabilidade de que o texto a ser publicado seja 
bem recebido e faça “sucesso”. 
 
PESQUISE 
Há um grande equívoco por parte de muitos autores de blogs, que é o 
conhecimento relacionado a um determinado assunto. Muitas pessoas, 
quando propõe-se a escrever um artigo técnico, enganam-se e pensam já 
saber o suficiente para não ser necessário fazer nenhuma pesquisa adicional. 
Mero engano, todo e qualquer conteúdo técnico, fica muito melhor 
apresentado, se expor pontos de vistas diferentes, ou mesmo conteúdo de 
fontes variadas, para defender um ponto de vista, ou mesmo descrever algo. 
 
LEIA E ESTUDE MUITO 
Leitura e estudo, nunca é demais. E quanto mais conhecimento sobre o 
assunto a ser dissertado, melhor e mais rico ficará o artigo técnico. É sempre 
muito importante estudar, ler e fazer tantos testes quantos possíveis antes 
de publicar o artigo, visto que uma vez publicado, seu texto estará exposto 
para o mundo inteiro a qualquer momento para visualização de qualquer 
pessoa que quiser visualizá-lo, e conforme já citado anteriormente, pode ser 
muito bom ou muito ruim esta exposição. 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 36 
 
FAÇA CITAÇÕES E REFERÊNCIAS 
Um ponto não menos importante que os anteriores é a existência de citações 
e referências no artigo técnico dos textos que foram escritos por outros 
autores. É frustrante para um autor, ver que todo trabalho de pesquisa e 
estudo que ele teve para escrever determinado trecho de artigo, ou mesmo 
um artigo completo, e repentinamente ver este “roubado” e publicado sem 
referência em outro local, que até então era desconhecido. É até mesmo 
uma questão de respeito e demonstração de maturidade e bom senso, que 
ficarão explícitos aos leitores do artigo em questão. 
 
REVISÃO PERIÓDICA (NÃO OBRIGATÓRIA) 
Esta não é uma necessidade extremamente importante, mas 
esporadicamente é interessante ler alguns de seus posts / artigos técnicos 
para que se por algum acaso houver algum erro (digitação, português ou 
conceitual), este possa ser corrigido. 
Revise sua estratégia / metodologia 
Um Blog baseado no dia a dia, ou na carreira de um profissional, deve 
acompanhar as mudanças que naturalmente ocorrem na carreira. Um bom 
exemplo é a tendência de migração de vários serviços de tecnologia para a 
nuvem. Se você fala sobre infraestrutura de servidores (Windows ou Linux), 
por exemplo, considere começar a estudar sobre computação na nuvem, e à 
medida que sentir-se confortável, os artigos naturalmente devem 
acompanhar esta mudança, isto fará com que os leitores, acompanhem as 
mudanças e talvez até se consiga mais leitores assíduos dos artigos técnicos 
publicados. 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 37 
 
O ARTIGO TÉCNICO 
Abaixo, listo algumas características e especificidades referentes aos tipos 
mais comuns de artigos técnicos, detalhes do mesmo e alguns pontos de 
observação no que se refere à gramática na redação destes. 
 
TIPOS DE ARTIGOS TÉCNICOS 
 
DOCUMENTAÇÃO 
Este tipo de artigo técnico visa dissertar sobre algum produto, feature ou 
atividade, demonstrando sua finalidade sem se preocupar na apresentação 
dos métodos ou passo a passo para implementação. Este tipo de artigo 
técnico, geralmente é escrito quando são lançadas versões novas ou um 
produto totalmente novo, com a finalidade principal de demonstrar tal 
produto ou feature. 
 
HOW TO(S) 
Artigos técnicos deste tipo, são como tutoriais onde normalmente é descrito 
um passo a passo com detalhes de implementação, ativação ou quaisquer 
alterações que objetivem o autor do artigo a criá-lo. 
 
BENCHMARKS E EXPERIÊNCIAS 
Este é um outro tipo de artigo bastante interessante, onde o autor do artigo, 
por necessidade ou ocasionalidade, passou por algum problema ou fez 
alguns testes que posteriormente demonstra em seu artigo técnico. 
Geralmente estesartigos são bem interessantes e demonstram situações do 
dia a dia e podem agregar bastante conhecimento à quem atua ou possui 
ambiente similar ao descrito no artigo. 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 38 
 
O ARTIGO TÉCNICO EM SI 
 
ESTRUTURA 
Um artigo técnico (ou não) bem estruturado é muito importante, pois facilita 
e contribui para que a leitura fique mais agradável e entendível. Se a ideia é 
escrever muito, este tópico é especialmente importante, pois quanto maior 
o texto, mais cansativa e desestimulante fica a leitura, caso a mesma não 
esteja bem estruturada, sendo o inverso igualmente verdadeiro, quando 
mais bem estruturado, melhor e mais agradável se torna a leitura do mesmo. 
Por um texto bem estruturado, entende-se a divisão do mesmo (introdução, 
desenvolvimento e conclusão), estruturação utilizando-se marcadores, 
definições de fontes tradicionais de tamanhos proporcionais e 
principalmente a divisão em tópicos e subtítulos, determinando exatamente 
o assunto que determinado ponto do artigo trata. 
 
L INGUAGEM 
Não se pode dizer que é correto ou incorreto escrever de uma forma 
completamente informal ou de forma muito formal. O ideal é definir o 
público alvo que se deseja atingir, e escrever da forma correta para este 
público alvo. Por exemplo, talvez escrever de forma extremamente formal, 
um artigo onde os principais leitores serão jovens universitários em início de 
carreira, pode tornar a leitura um tanto quanto chata e cansativa. Da mesma 
forma, não é aconselhado um texto muito informal, quando o público alvo 
são diretores e presidentes de empresas de Tecnologia, ou outras. Sendo seu 
artigo formal ou não, o importante é o correto direcionamento do artigo ao 
seu respectivo público alvo. 
 
PÚBLICO ALVO 
Conforme mencionado anteriormente, além de escrever da maneira correta 
para o público alvo correto, é preciso conhecer e saber para quem se está 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 39 
 
escrevendo, com isto é possível adequar a linguagem, estrutura e conteúdo 
do seu artigo. 
 
GRAMÁTICA 
 
EVITE OS ERROS MAIS COMUNS (DIGITAÇÃO, GÍRIAS , CONCORDÂNCIA , ETC) 
Um dos pontos mais importantes em um artigo técnico é a clareza e 
assertividade com que se escreve um texto, relacionado à gramática do 
idioma no qual este texto é escrito. Se o texto está em português por 
exemplo, é imprescindível tomar todos os cuidados com erros de 
concordância, gírias, neologismos e até mesmo com erros de digitação, que 
naturalmente podem aparecer durante a redação do mesmo. Um texto bem 
escrito e gramaticalmente correto corrobora muito para que ao final da 
leitura, o leitor tenha prestado atenção ao conteúdo e tenha tido bom 
entendimento do que pretendia-se ter passado, do que ficar em mente os 
“assassinatos” ao idioma encontrados durante a leitura. 
 
SOLICITE REVISÕES (AMIGOS, COMUNIDADE, PARENTES , SR. JOAQUIM) 
Uma ferramenta gratuita e muito útil é a revisão antes da publicação. É bem 
provável que uma pessoa que possui um local onde publicar seus artigos 
(técnicos ou não), conheça outras pessoas do meio, que podem ler e avaliar 
o texto antes de o mesmo ser publicado. Ainda assim, caso não seja possível 
encontrar alguém que possa revisar o texto, é possível solicitar que uma ou 
mais pessoas o façam (mesmo não sendo do meio relacionado ao conteúdo 
do artigo). 
Se possível, é aconselhável que sejam feitas revisões técnicas e gramaticais, 
assim mitiga-se o risco de incorreções tanto na parte técnica proposta no 
artigo, como também a parte gramatical que é tão importante quanto. 
Abaixo, listo alguns pontos importantes com relação à algumas principais 
preocupações e com a publicidade quando se está desenvolvendo um artigo 
técnico. 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 40 
 
PRINCIPAIS PREOCUPAÇÕES 
 
SEMPRE 
 
Solicite que alguém revise seus textos antes de publicá-los 
Cite as fontes das informações 
Pesquise em fontes fidedignas 
Não assassine o idioma 
Deixe claro que o texto é sua opinião, não uma verdade absoluta 
 
NUNCA 
Escreva com pressa de publicar 
Publique um artigo sem pelo menos uma revisão 
Copie ou reblogue algo, sem autorização do autor do texto original 
Diga que sua forma é a única maneira existente 
 
PUBLICIDADE 
Canais disponíveis 
Blog Pessoal 
Technet Wiki 
Facebook (Pages and Profile) 
Twitter 
 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 41 
 
FAÇA BARULHO 
Divulgue sempre seus artigos técnicos. 
Cuidado para não se tornar um spammer ou um chato bloqueado 
 
CONCLUSÃO 
 
Em resumo, um blog ou canal de textos técnicos quando bem escrito pode 
alavancar uma carreira, tornar seu autor conhecido por seus ótimos artigos 
e consequentemente rendendo bons resultados (convites, empregos, 
propostas, networking, etc). Em contrapartida, se o texto não é bem escrito 
e não toma-se diversos cuidados (alguns mencionados no texto supracitado) 
esta exposição pode ter o efeito contrário e fazer as oportunidades, a “fama” 
e propostas sumirem, visto que você pode estar mostrando a todos em seu 
texto seus pontos fracos (gramática, conhecimento técnico, etc). 
Eu gostaria ainda de esclarecer que tudo o que foi escrito foi baseado em 
minhas preocupações e minha opinião. De forma alguma é a representação 
absoluta da verdade. Se você concorda, discorda ou tem algo a acrescer, será 
muito bem vindo nos comentários…. 
Obrigado por chegar até aqui, 
 
Grande abraço, 
 
Edvaldo Castro 
http://edvaldocastro.com 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 42 
 
Diego Nogare 
www.diegonogare.net 
Partition Table 
Particionamento de Tabelas 
 
Fala galera, esses dias atrás estava fazendo uma apresentação sobre SQL 
Server 2012 e surgiu uma dúvida de um dos participantes 
sobre particionamento horizontal de tabelas. Decidi procurar alguns 
materiais em português e não achei muitos, então resolvi dar minha 
contribuição sobre esse assunto. 
Bom, os benefícios de se utilizar Partition Table no SQL Server são muitos, 
mas antes de falar dos benefícios, vamos criar um banco de dados de 
exemplo para simular uma tabela do mundo real e depois entender o que é 
o Partition Table. 
Esse script cria um banco que irá simular uma tabela de visitas de um museu, 
imaginando que o museu foi inaugurado no dia 1º de Janeiro de 2012 e hoje 
é dia 31 de Dezembro, totalizando neste 1 ano de atividades 1 milhão de 
visitas. Com os próximos sub-capítulos vamos criar as partições, separar 
esses dados e deixar cada agrupamento (visitas do mesmo mês) em uma 
tabela específica. Depois podemos comparar os prós e contras desta técnica. 
 
CREATE DATABASE dbMuseu 
GO 
 
USE dbMuseu 
GO 
 
CREATE TABLE tbVisitas 
(id INT IDENTITY(1,1) PRIMARY KEY 
,nome VARCHAR(50) 
,data DATE) 
GO 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 43 
 
INSERT INTO tbVisitas (nome, data) 
VALUES (newid(), /*Dados aleatórios para o 
nome*/ 
convert(date, convert(varchar(15),'2012-' + 
convert(varchar(5),(convert(int,rand()*12))+1
) + '-' + /* Gerar mês aleatório */ 
convert(varchar(5),(convert(int,rand()*27))+1
) /* Gerar dia aleatório */ ))) 
GO 1000000Ótimo, agora que já temos nossa base para simular… Vamos entender o que 
é o particionamento! 
O particionamento horizontal de tabelas é uma técnica que utilizamos na 
arquitetura da estrutura de dados, para melhorar a 
performance/desempenho/gerenciamento do sistema gerenciador de 
banco de dados. Esta técnica consiste em dividir os dados, baseado em um 
parametro, em tabelas e File Groups diferentes. 
Para exemplificar, veja na imagem abaixo os dados que estavam na tabela 
Visitas foram divididos em 12 tabelas, cada uma armazenando os dados de 
um mês específico. A tabela azul armazena visitas de Janeiro, a 
tabela verde armazena de Fevereiro e a tabela laranja armazena visitas de 
Dezembro. Porém, a tabela preta representa a consulta de todas as visitas 
do ano inteiro… 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 44 
 
 
No decorrer dos próximos sub-capítulos, vamos trabalhar em atividades 
específicas necessárias para particionar com sucesso essa tabela de visitas 
do museu. 
 
CENÁRIOS/BENEFÍCIOS 
Fala galera, uma duvida frequente quando falamos em particionar uma 
tabela, é: Porque Particionar?! Pensamos em particionamento de tabelas 
quando ela possui muitos registros e precisamos melhorar escalabilidade, 
performance e gerenciamento. Normalmente desenhamos as tabelas para 
armazenar informações de uma entidade específica, como Funcionarios, 
Vendas ou Produtos. Não é porque desenhamos e entendemos este modelo 
de dados que otimizamos a tabela para receber grande volume… Já 
encontrei por ai, e não foi só uma vez, tabelas com quantidade de dados 
significativa e que não tinha nenhum tipo de índice. Acreditem, é triste mas 
é verdade! Quando falamos de bancos de dados realmente grandes, nos 
referimos à VLDB (Very Large Database). Não é regra que um VLDB possua 
tabelas que precisam ser particionadas. Para particionar uma tabela um dos 
pontos mais importante a se levar em consideração é o tempo gasto para 
dar manutenção nesta tabela, e não somente a quantidade de registros. 
Imaginem o caso de uma tabela de Produtos de um e-Commerce que fica 
2h/dia lenta porque está reorganizando/reconstruindo o índice, ou fica 
travada quando estão rodando algum relatório… Esse tipo de tabela pode 
ser particionada para melhorar o tempo de resposta das consultas e garantir 
que o e-Commerce continue fazendo suas vendas online. Pensando em 
relatórios, isso pode causar uma lentidão grande no seu RDBMS (Relational 
Database Management System) quando tem um ROLAP (Relational On Line 
Analytical Processing) realizando agregações. Se uma tabela com 1 milhão 
de registros precisa agregar as vendas por mês, o processamento irá 
trabalhar com todas as linhas da tabela e fará o somatório. Imaginando este 
mesmo cenário em um ambiente particionado, cada partição faz suas 
agregações e no final do processamento, você terá uma resposta mais rápida 
e seu ambiente continuou respondendo com rapidez. Um outro tipo de 
particionamento de tabelas pode ser feito para separar dados “quentes” e 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 45 
 
histórico. Os dados quentes são os dados que você trabalha atualmente, por 
exemplo, os dados do trimestre atual e os dados de histórico são os dados 
dos trimestres passados. Se você separar os dados da sua tabela a cada 3 
meses, você pode deixar os dados atuais em discos mais nobres do seu 
storage (SSD) e os dados de histórico em outros discos menos nobres (SAS 
ou SATA). Imagine a necessidade de consultar as vendas do ultimo ano, com 
a tabela particionada, você faria isso sem ter nenhuma concorrencia com as 
transações que estão acontecendo atualmente na tabela. 
 
DEFINIÇÕES/TERMINOLOGIAS 
Fala galera, para implementar o particionamento horizontal de tabelas, é 
importante conhecer as definições e terminologias utilizadas. Para 
alinharmos, vou falar do que é fundamental para você entender e aplicar 
essa tecnologia nos seus projetos. 
Para começar, vamos entender a estrutura de armazenamento do Partition 
Table. Esta forma de trabalhar se aplica desde SQL Server 2005 até o 2012, 
antes disso, com o SQL Server 7 ou 2000, até onde me lembro, tinha que 
fazer manualmente a quebra dos dados nas tabelas particionadas e a 
consulta era feita através de uma VIEW com UNION ALL de todas as tabelas 
particionadas… um verdadeiro parto! 
Desde o SQL Server 2005, quando criamos uma tabela e/ou índice no nosso 
banco e não definimos onde ele será armazenado, ele fica no 
filegroup default. Porém, podemos criar a tabela e/ou índice em um partition 
scheme. O partition scheme faz um mapeamento de um ou mais filegroups, 
mas para armazenar os dados nos arquivos físicos corretos (nos filegroups) 
ele usa o partition function, que por sua vez, contém o algoritmo que 
realmente identifica onde determinada linha será armazenada. A ordem 
cronológica é mais ou menos assim: 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 46 
 
 
 
Ok, agora que entendemos de forma macro a estrutura de armazenamento, 
vamos entender conceitualmente como o SQL Server quebra os dados 
baseado em uma coluna da tabela. 
Para isso, é necessário definir o Range que o algoritmo de particionamento 
irá usar para separar os dados de forma correta e informar o partition 
function (que irá armazenar no local indicado). Esse Range atua juntamente 
ao Partition Key, que é uma coluna única existente na tabela e é utilizada 
como separador lógico dos dados. Depois dos dados separados em tabelas 
específicas, é possível trabalhar com os dados das tabelas não só fazendo 
consultas, mas também juntando (Merge) e/ou particionando ainda mais as 
tabelas (Split). Também usa-se o Switch para “converter” uma tabela que 
estava sendo usada como atual, com dados quentes, para ser entendida 
como histórico. 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 47 
 
 
 
Pegando como base o database criado no sub-capitulo de Particionamento 
de Tabelas, se for separar os dados com base em cada mês, o Partition 
Key seria a coluna Data e o Range seria cada período que quero utilizar, 
baseado em um início e fim da coleção de dados. Seria algo assim: 
 
Intervalo Inicio Fim 
1 01/01/2012 31/01/2012 
2 01/02/2012 28/02/2012 
… … … 
12 01/12/2012 31/12/2012 
 
Fiquem atentos à essas nomenclaturas, a medida que precisarmos usar cada 
uma delas vou explicar em detalhes suas caracteristicas e funcionamento. 
 
 
 
 
S Q L S e r v e r : A l é m d o C o n c e i t o 
B l o g P o s t C o l l e c t i o n 
 
M V T e c h | 48 
 
CRIANDO F ILEGROUP 
 
Fala galera, mesmo o Filegroups sendo o “final” do processo de criar a 
Partition Table pois é onde os dados serão armazenados de fato, vamos criá-
los primeiro. Depois de criar os filegroups podemos voltar e criar o Partition 
Function e o Partition Scheme. 
Antes de criar o filegroup, vamos relembrar um pouco de conceito do SQL 
Server. Todos os dados de uma tabela são armazenados em um agrupador 
chamado Página que possui 8Kb de tamanho. Independente de uma página 
estar com apenas 1 registro, ou totalmente preenchida com dados, ela ocupa 
8Kb de tamanho. Outra caracteristica é que dentro de uma página são 
armazenados somente dados de uma mesma tabela. Se neste exemplo 
abaixo existisse somente 1 funcionário e 1 produto, existiriam 2 páginas 
criadas. O conjunto de 8 páginas é chamado

Outros materiais