Forum
See question

Índices de desempenho   

24 views
1
0

A Base de dados está lenta, como posso criar índices para melhorar o desempenho?

Faça login para poder traduzir
Performance
Primavera
Marked as spam
Criado há 3 anos e 9 meses maria
maria Most Valuable Professional
1 answers
0
Private answer

Pode, através da seguinte query, identificar a sugestão de índices:

SELECT TOP 25

DatabaseID= dm_mid.database_id

,Avg_Estimated_Impact= dm_migs.avg_user_impact*(dm_migs.user_seeks+dm_migs.user_scans)

,Last_User_Seek= dm_migs.last_user_seek

,[TableName]= OBJECT_NAME(dm_mid.OBJECT_ID,dm_mid.database_id)

,Create_Statement= 'CREATE INDEX [IX_' + OBJECT_NAME(dm_mid.OBJECT_ID,dm_mid.database_id) + '_' + REPLACE(REPLACE(REPLACE(ISNULL(dm_mid.equality_columns,''),', ','_'),'[',''),']','')

+ CASE WHEN dm_mid.equality_columns IS NOT NULL AND dm_mid.inequality_columns IS NOT NULL THEN '_' ELSE '' END

+ REPLACE(REPLACE(REPLACE(ISNULL(dm_mid.inequality_columns,''),', ','_'),'[',''),']','') + ']'

+ ' ON ' + dm_mid.statement + ' (' + ISNULL (dm_mid.equality_columns,'')

+ CASE WHEN dm_mid.equality_columns IS NOT NULL AND dm_mid.inequality_columns  IS NOT NULL THEN ',' ELSE '' END

+ ISNULL (dm_mid.inequality_columns, '')+ ')' + ISNULL (' INCLUDE (' + dm_mid.included_columns + ')', '')

FROM sys.dm_db_missing_index_groups dm_mig

INNER JOIN sys.dm_db_missing_index_group_stats dm_migs ON dm_migs.group_handle = dm_mig.index_group_handle

INNER JOIN sys.dm_db_missing_index_details dm_mid ON dm_mig.index_handle= dm_mid.index_handle

WHERE dm_mid.database_ID = DB_ID()

ORDER BY Avg_Estimated_Impact DESC

 

Nos resultados apresentados sugerimos:

  • Analisar a sobreposição de índices e a ordem dos campos do mesmo de modo a criar um índice eficaz.
  • Quando é sugerido mais do que o mesmo índice para a mesma tabela e com o mesmo nome, deve ser executado, apenas um, sem os includes.
Faça login para poder traduzir
Marked as spam
Criado há 3 anos e 9 meses maria
maria Most Valuable Professional