SQL Server 2016 Performance Enhancements It Just Runs Faster Fabio Gentile / André César Rodrigues Premier Field Engineers (PFE)/ Microsoft [email protected] / [email protected] PATROCINADORES Quem somos nós... André César Rodrigues Quase 7 anos trabalhando com SQL Server MBA Administrando Bancos de Dados IBTA SQL Server PFE na Microsoft desde Janeiro deste ano Fabio Gentile Mais de 18 anos trabalhando com o SQL Server nas suas diversas versões Bacharel em Ciência da Computação pela UFSCAR SQL Server PFE na Microsoft desde 2007 Introducão “SQL Server 2016 running on the same hardware as SQL Server 2014, 2012, 2008, 2008 R2 or 2005 uses fewer resources and executes a wide range of workloads faster...” Bob Dorr, Principle Engineer SQL Server Support SQL Server 2005 is out... Windows Server 2012 ou > HW suporta Windows Server 2012? High Performance Workloads Até o SQL Server 2014, vários ajustes eram necessários para um melhor desempenho: Ativar o Instant File Initialization Configurar o tempdb Ativar trace flags Mudar parâmetros de configuração Recommended updates and configuration options for SQL Server 2012 and SQL Server 2014 with high-performance workloads (2964518) High Performance Workloads Com o SQL Server 2016, a maior parte do comportamento desejado tornou-se padrão Melhorias no engenho aumentaram escalabilidade e throughput Muitas configurações podem ser feitas no nível do banco de dados Trace flag 4199 Servicing Model TF 4199 ainda será usado para proteger futuros hotfixes do otimizador SQL Server query optimizer hotfix trace flag 4199 servicing model (974006) Hotfixes protegidos pelo TF 4199 e anteriores ao SQL Server 2016 habilitados automaticamente no CL 130 Trace flag 4199 Servicing Model Trace flag 2371 Atualização automática de estatísticas é mais agressiva em tabelas grandes no CL 130 Mesmo comportamento do TF 2371, que sob o SQL Server 2016 não precisa ser ativado SQL Server 2008 R2 SP1 ou > Instant File Initialization Acelera a criação e expansão dos arquivos de dados Requer o privilégio ‘Perform Volume Maintenance Tasks’ Privilégio habilitado por padrão apenas para administradores locais Instant File Initialization Setup do SQL 2016 permite habilitar o ‘Perform Volume Maintenance Tasks’ Tempdb Configuration Artigos, KBs e blogs discutem a reconfiguração do tempdb: Drive dedicado Multiplos arquivos de dados, mesmo tamanho e auto-growth TF 1117 TF 1118 Tempdb Configuration Setup com nova guia para configurar o tempdb: Cálculo automático de nº de arquivos Initial Size = 8 MB Auto-growth = 64 MB TFs 1117 e 1118 ativados por padrão User databases TF 1118 ativado por padrão, controlado com nova opção no ALTER DATABASE: ALTER DATABASE <dbname> SET MIXED_PAGE_ALLOCATION OFF Não funciona no tempdb TF 1117 desativado por padrão, configurado no nível do FILEGROUP: ALTER DATABASE <dbname> MODIFY FILEGROUP <filegroup> {AUTOGROW_ALL_FILES | AUTOGROW_SINGLE_FILE} User databases Tamanho inicial dos arquivos é 8 MB, autogrowth para dados e log é 64 MB Configurações opcionais no nível dos bancos de dados: Database Scoped Configurations Database Scoped Configurations Limpar procedure cache Configurar MAXDOP Mudar cardinality estimation model Controlar parameter sniffing Controlar TF 4199 Database Scoped Configurations Dynamic Memory Object Partitioning CMEMTHREAD pode ser ponto de contenção com múltiplos cores TF 8048 converte particionamento de NUMA para CPU, novas contenções exigem hotfixes Dynamic Memory Object Partitioning No SQL Server 2016, contenções por CMEMTHREAD são detectadas e tratadas dinamicamente SQL Server 2014 SP2 backport Particionamento dos objetos é perdido com o restart da instância Dynamic Memory Object Partitioning Dynamic Memory Object Partitioning sys.dm_os_memory_objects Updated Scheduling Algorithms Até o SQL Server 2014, apenas load factor e NUMA nodes eram considerados Diferentes demandas por CPU podiam não ser balanceadas SQL Server 2016 monitora a utilização de CPU, permitindo tratamento balanceado para as workers Updated Scheduling Algorithms SQL Server 2014 SQL Server 2016 Automatic Soft NUMA Até o SQL Server 2005, 8 CPUs por NUMA node eram sistemas high-end Com 18 cores por NUMA, gargalos semelhantes ao SMP são observados SQL Server 2016 configura Soft-NUMA em sistemas com 8 ou mais CPUs por NUMA node Automatic Soft NUMA Soft NUMA Soft NUMA Soft NUMA Soft NUMA Other Performance Improvements E tem muito mais! Explore outras novidades neste link: CSS SQL Server Engineers Blog SQL SAT – PÓS-EVENTO (09/10) FABIANO AMORIM – 150 DICAS DE TUNING R$150,00 LOCAL : MICROSOFT - SP