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