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