Encontro SQL BH

Propaganda
Encontro SQL BH
March 2016
Estratégias de Filegroup e Particionamento
de tabelas no SQL Server
Apoio
2
May 2 – 4, 2016
San Jose, CA
Why Attend?
•
•
•
•
Day 1 Keynote speaker Jer Thorp, renowned data artist
and educator.
Learning with industry experts in Power BI, Excel, Big
Data, Predictive Analytics, Data Visualization, and more.
60+ hours of in-depth sessions and labs in tracks that
follow the Analyst’s Journey.
Networking experiences with hundreds of analytics
professionals from around the world.
REGISTER TODAY
passbaconference.com
* Learn about the referral program to receive a
$50 Amazon Gift Card at http://ow.ly/XHK7O
3
4
Local Chapters
5
Upcoming SQL Saturdays
Brazil
• Apr 9
Joinville #488
• Jun 18
Rio de Janeiro #512
Visit www.sqlsaturday.com to
register for an event near you!
6
Quem Somos
Joice Souza
Database Administrator
Análise de Desenvolvimento de Sistemas - Una
MBA em Gestão em Tecnologia da Informação - Una
Vitor Ferreira
Arquiteto de Business Intelligence
Engenharia de Controle de Automação - Newton Paiva
Análise e Desenvolvimento de Sistemas - Estácio de Sá
7
www.CodeNews.com.br
8
Assuntos em Pauta...
Filegroup
O que é um filegroup?
Estrutura de arquivos no SQL Server
Arquivo de Log
Bancos do sistema
Distribuição dos objetos nos filegroups
Estratégias utilizando o filegroup
Melhores práticas para criação de filegroup
9
Demo
Assuntos em Pauta...
Particionamento
O que é o particionamento de tabelas?
Particionamento Distribuído
Particionamento Vertical
Particionamento Horizontal
Vantagens em particionar
Cuidado ao particionar!
Formas de particionar
10
Assuntos em Pauta...
Particionamento
Particionamento no SQL Server
Manutenção de partições
Expurgo de dados
Boas práticas
Considerações finais
Demo
11
Filegroup
12
O que é um Filegroup?
É uma estrutura lógica para mapear o banco
de dados e seus objetos, relacionando-os
com data files (arquivos de dados).
 Facilitar as tarefas administrativas
 Melhorar o desempenho
 Restringir tipo de acesso
13
Estrutura de arquivos no SQL Server
14
Arquivo de log
 Escrita sequencial.
 Não é necessário
arquivos.
dividir em vários
 Alocar em unidades de disco apartada
dos arquivos de dados.
15
Bancos do sistema
 Alocar os arquivos em unidade apartada.
 Tempdb deve ter vários arquivos de dados
com a mesma estratégia de autogrowth.
 A quantidade de arquivos de dados deve
ser condizente com o número de
processadores físicos.
16
Distribuição dos objetos nos Filegroups
17
Estratégias utilizando o filegroup
 Read-Only - Restringir o filegroup como
somente leitura.
 Índices – Alocar em filegroup separado.
 Backup – Realizar o backup regular somente
de filegroups com dados voláteis.
 Restore – Agilidade em subir dados.
18
Demo 1 - Criação de filegroups
19
Melhores práticas para criação de Filegroup
 Alinhar com a estratégia do seu negócio.
 Criar filegroup para índices.
 Dividir os dados em filegroups.
Ex.: históricos e dados voláteis.
 Backup – Realizar o backup regular somente
de filegroups com dados voláteis.
20
Particionamento
21
O que é o Particionamento de tabelas?
O recurso de dividir fisicamente tabelas de
seu banco dados.
 Particionamento distribuído
 Particionamento local
• Horizontal
• Vertical
22
Particionamento Distribuído
23
Particionamento Vertical
24
Particionamento Horizontal
25
Vantagens em particionar
Performance
• Segregação dos dados.
• Menor concorrência de leitura e escrita.
• Alocar os dados com maior leitura em
disco mais performático.
Administração
• Economia de disco.
• Diferentes estratégias de backup.
• Manutenção de índices.
• Expurgo de dados.
26
Cuidado ao Particionar!
27
Cuidado ao Particionar!
 Apagar incêndios
 Esconder problemas:
• Falhas de Modelagem
Desnormalização
Índices
Estatísticas
• Queries mal escritas
 Planejar o particionamento na modelagem
do banco.
28
Formas de particionar
Partition Range
Utilizado para um intervalo de dados.
Muito usado para datas.
Ex.: Ano, campo de identificação.
29
Formas de particionar
Partition List
Cria-se uma lista de valores.
Ex.: Estados, filiais de uma empresa.
30
Formas de particionar
Partition Hash
O SGBD define a distribuição de forma
linear.
Utilizado normalmente em cenários de
distribuição heterogênea.
31
Formas de particionar
Organized by Dimension
Particionamento dividido de acordo com
as tabelas dimensão de um datawarehouse.
32
Particionamento no SQL Server
SQL Server suporta o Partition Range.
33
Demo 2 – Particionar tabelas
34
Manutenção de partições
 Criar novas partições.
 Reconstruir/ reorganizar índices.
 Desfragmentar arquivos de dados.
35
Demo 3 – Manutenção de partições
36
Expurgo de dados
 Instrução delete.
• Undo e Redo.
• Log
 Excluindo uma partição.
•
•
37
SQL 2016
Outras versões
Demo 4 – Expurgo de dados
38
Boas Práticas
 Planejar a estrutura de partições na
modelagem do banco.
 Dados mais acessados devem ser alocados
em disco com maior performance.
 Utilizar o recurso In-memory.
 Read-only para dados históricos.
 Carregamento em massa utilizando switch.
39
Considerações finais
Planejamento é importante
Como funciona o meu negócio?
Qual o hardware disponível?
Separe um tempo para a modelagem.
Acompanhe e meça
A minha estratégia está funcionando?
Preciso de novos índices?
Espaço em disco é suficiente?
Escreva queries performáticas.
Dê manutenção
40
Desfragmente os arquivos/ índices.
Considere expurgar dados.
Contatos
41
Joice Souza
Vitor Ferreira
[email protected]
[email protected]
joice.ssouza
vitor.engaut
/joice.souza.798
/vitor.engaut
https://codenews.com.br
https://vitor.arq.br
Dúvidas?
42
Referências
Material de Treinamento Oficial Microsoft
Implementing a Data Warehouse with Microsoft SQL Server 2014
Administering Microsoft® SQL Server
MSDN - Tabelas e índices particionados
https://msdn.microsoft.com/pt-br/library/ms190787(v=sql.120).aspx
DevMedia - Particionamento de Dados: Uma introdução
aos conceitos e aplicação
http://www.devmedia.com.br/particionamento-de-dados-umaintroducao-aos-conceitos-e-aplicacao/7299
TechNet - Particionamento
https://technet.microsoft.com/ptbr/library/ms178148(v=sql.105).aspx
43
Referências
DevMedia - Melhores práticas com Transaction Log e
TempDB.
http://www.devmedia.com.br/melhores-praticas-com-transactionlog-e-tempdb-no-sql-server-2008-revista-sql-magazine103/25666
Blog Junior Galvão - Utilizando Backup de Filegroup no
SQL Server
https://pedrogalvaojunior.wordpress.com/2011/05/05/utilizandobackup-de-filegroup-no-sql-server-final/
44
Volunteering Opportunities
PASS would not exist without its global network of
passionate, dedicated, and hardworking volunteers.
Volunteer today!
For local opportunities, please visit:
volunteer.sqlpass.org
For PASS HQ related activities, please update the
“MyVolunteering” section of your MyPASS profile.
4
5
Stay Involved!
4
6
•
Sign up for a free membership today at sqlpass.org.
•
•
•
•
Linked In:
Facebook:
Twitter:
PASS:
http://www.sqlpass.org/linkedin
http://www.sqlpass.org/facebook
@SQLPASS
http://www.sqlpass.org
Download