Boa noite galera, essas últimas semanas vim trabalhando na procedure SP_SHOWINDEX revendo alguns códigos, implementando algumas dicas que foram passada pelo pessoal, melhorando performance e corrigindo alguns gaps, se você ainda não conhece a SP_SHOWINDEX dê uma olhada no link abaixo:
Abaixo um pouco das mudanças, acredito que esta procedure esteja ficando muito boa, esta me ajudando muito nos últimos tempos, sou suspeito de falar então baixa, utiliza e deixa sua opinião ou alguma dica para estarmos sempre melhorando ela.
![index-duplicate](https://static.wixstatic.com/media/efe4c3_8c6f26370f094e65ac9d2aaa9be9ad6e~mv2.png/v1/fill/w_75,h_54,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/efe4c3_8c6f26370f094e65ac9d2aaa9be9ad6e~mv2.png)
@IS_DUPLICATE é um parâmetro novo adicionado na versão 2.0 onde quando especificado o valor 1 para esse parâmetro é feito uma varredura em todos os índices afim de encontrar duplicidades, o result set é ordenado pelo nome do índice e suas duplicidades. O que é levado em consideração para retornar o índice duplicado é apenas os campos que compõe o índice e sua ordem na chave, não é levado em consideração o INCLUDE do índice para essa validação.
![tb-like](https://static.wixstatic.com/media/efe4c3_7712784c998b4fb9adcab9b7816c134f~mv2.webp/v1/fill/w_133,h_56,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/efe4c3_7712784c998b4fb9adcab9b7816c134f~mv2.webp)
Nessa atualização foi implementado a busca pelo LIKE, onde você não precisa saber o nome completo da tabela e pode utilizar expressões regulares para filtrar a tabela que deseja dentro do %%.
Expressões regulares no SQL Server https://msdn.microsoft.com/pt-br/library/ms174214.aspx
![index-like](https://static.wixstatic.com/media/efe4c3_c947c65060314519b2435470c8399285~mv2.webp/v1/fill/w_133,h_56,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/efe4c3_c947c65060314519b2435470c8399285~mv2.webp)
Na versão 2.0 foi introduzido também o parâmetro @INDEX_NAME onde você pode fazer filtro pelo nome do índice ou parte dele utilizando expressões regulares assim como já citado acima.
![index-details](https://static.wixstatic.com/media/efe4c3_72e0a061402549f5923875be52ce6278~mv2.webp/v1/fill/w_133,h_55,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/efe4c3_72e0a061402549f5923875be52ce6278~mv2.webp)
Outra novidade foi uma dica deixada nos comentários do post da SP_SHOWINDEX pelo Renato Siqueira. Foi implementado dentro do parâmetro @INDEX_DETAILS para retornar informações sobre particionamento, como podemos ver acima no print, é retornado o ‘partition_scheme’, ‘file_groupname’, ‘funciton_name’ e ‘partitions’ do índice.
![index-fragmentation](https://static.wixstatic.com/media/efe4c3_6ee1c434d4e349e5aa435b874dea84fe~mv2.webp/v1/fill/w_133,h_71,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/efe4c3_6ee1c434d4e349e5aa435b874dea84fe~mv2.webp)
![diversos-parametros](https://static.wixstatic.com/media/efe4c3_eeb8a7e7fdf14279826cb81b873cb9ae~mv2.webp/v1/fill/w_133,h_93,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/efe4c3_eeb8a7e7fdf14279826cb81b873cb9ae~mv2.webp)
Exemplos combinando diversos parâmetros.
Vemos que os parâmetros podem ser flexíveis e temos informações ricas sobre os índices de forma mais fácil e pratica, espero que essa procedure possa ajudar a muitos em seu dia-a-dia.
Algumas coisas estão sendo estudadas para implementar na próxima release, entre elas quero adicionar ‘Indices In-Memory’ e ‘Column Store índices’, estou pensando também em compilar uma versão da SP_SHOWINDEX para SQL Database, aos poucos vamos chegando no objetivo.
Bom galera é isso faça o download da versão 2.0 da SP_SHOWINDEX e avalie a sua usabilidade, não esqueça de deixar sua opinião ou dica, é muito importante para conseguirmos evoluir cada vez mais, até a próxima!
Link para download:
Atualizado em 06/01/2017 18:30 – Corrigido problema com o parâmetro @IS_DUPLICATE.
Reginaldo Silva