Ensinando
SQL 2012 Indexes
Armando Lacerda
[email protected]
Agenda
• Base line
• Físico e Lógico
• Tipos de índices
• Filtered Indexes
• Columnstore
• Inimigos dos índices
Base Line
• Índices são estruturas de dados para melhorar performance de recuração de
linhas das tabelas
• Índices podem piorar a performance de acesso a tabelas
• Não há garantias de que um índice seja utilizado pelo SQL
• Índices devem ser criados de acordo com o uso das tabelas (queries)
• Somente tabelas maiores se beneficiam de índices
Físico e Lógico
• Procedimento básico: separar tabelas de índices
• Separar índices de tabelas em filegroups
•
•
Melhora performance se os arquivos estiverem em discos diferentes
Piora a performance se os arquivos estiverem no mesmo disco
Tipos de Índices
• Heap
• Clustered
• Nonclustered
•
•
•
•
Filtered
Partitioned
Sparse
Included
• Spatial
• XML
• Fulltext search
• Unique
• Columnstore
• Compression
Filtered Indexes
• Ideal para colunas com baixa seletividade
• Economiza espaço em disco
• Melhora a performance de queries seletivas
Columnstore Index
• Muda a forma de armazenamento dos dados na página
•
•
Mapeamento
Compactação
• Ganho absurdo de performance
• Impõe severas limitações a tabela
•
•
Tipos de dados
Read-only
• Melhor aplicação
•
•
cenários de BI e tabelas gigantes
Queries com agregações constantes
Columnstore
Columnstore
Inimigos dos índices
1. Desenvolvedores
2. Aplicações de UI
3. Usuários com acesso ao banco via Excel
4. Bulk Insert
5. Atualizações constantes
Q&A
Armando Lacerda
[email protected]
http://www.databasejournal.com/features/mssql/understanding-new-column-store-index-of-sql-server-2012.html
http://blogs.msdn.com/b/saponsqlserver/archive/2012/05/23/sql-server-2012-column-store-support-for-sap-bw.aspx
http://msdn.microsoft.com/en-us/library/gg492088.aspx
http://luanmorenodba.wordpress.com/2012/03/11/porque-usar-filtered-indexes/
http://www.apress.com/9781430237419
Download

Ensinando SQL 2012 Indexes