SQL server DMV: Missing index details

Oopps! Upgrade your browser pretty please. Oopps! Upgrade your browser pretty please.

I SQL server så finns det många vyer och funktioner som kan användas för att optimera prestandan i din databas. Några av dessa är: sys.dm_db_missing_index_details sys.dm_db_missing_index_groups sys.dm_db_missing_index_group_stats sys.dm_db_missing_index_columns

 

Dessa kan tillsammans ge dig värdefull information om vilka index som SQL servers optimizer saknar för att skapa en effektiv plan. Några nackdelar med denna lista är att väldigt snarlika förslag skapas och där det kanske bara skiljer sig någon enstaka kolumn, så man får vara selektiv med vilka index som man verkligen skapar och dessutom försöka konsolidera till så få index som möjligt. MEN det finns några problem med listan över saknade index, den föreslår inte vilken sorteringsordning respektive kolumns ska vara och det finns ingen referens till vilken exekveringsplan som har lagt upp förslaget. Det innebär att optimizern kanske inte väljer ett index som skapats enligt förslaget när olika kolumner har olika sorteringsordningar. Om alla kolumner i förslaget är samma sorteringsording oavsett ASC eller DESC så kan optimizern välja det nya indexet oavsett om du har skapat alla ASC eller DESC. Problemet uppstår när exempelvis kolumn1 har ASC och kolumn2 har DESC.

Ett exempel på detta kan du läsa om på http://ask.sqlservercentral.com/questions/79456/suggested-index-already-exists Eftersom du inte kan se vilken exekveringsplan som orsakade missing index förslaget så är det svårt att veta vilka kolumner som ska vara i vilken ordning. Detta problem har jag lagt upp som förslag på Microsoft Connect och vi ser gärna att ni hjälper till att öka chansen att detta fixas i senare versioner av SQL server. Jag har även registrerat ett förslag för att få in den senaste exekveringsplanen som är kopplad till respektive missing index post. https://connect.microsoft.com/SQLServer/feedback/details/691081 https://connect.microsoft.com/SQLServer/feedback/details/691085/plan-handle-for-the-last-execution-in-missing-index-dmv-s

Har du några SQL relaterade frågor så är du välkommen att kontakta någon av våra SQL server konsulter.