AlanTsai
1/13/2016 - 4:15 AM

Umbraco see which table need index #umbraco #sql

Umbraco see which table need index #umbraco #sql

SELECT migs.avg_total_user_cost * (migs.avg_user_impact / 100.0) * (migs.user_seeks + migs.user_scans) AS improvement_measure_pct    ,QUOTENAME(db_name(mid.database_id)) AS [database]
    ,QUOTENAME(OBJECT_SCHEMA_NAME(mid.object_id, mid.database_id)) AS [schema]
    ,QUOTENAME(OBJECT_NAME(mid.object_id, mid.database_id)) AS [table]
    ,'CREATE INDEX [mi_' + SUBSTRING(CONVERT(VARCHAR(64), NEWID()), 1, 8) + ']' + ' ON ' + mid.statement + ' (' + ISNULL(mid.equality_columns, '') + CASE
        WHEN mid.equality_columns IS NOT NULL
            AND mid.inequality_columns IS NOT NULL
            THEN ','
            ELSE ''
            END + ISNULL(mid.inequality_columns, '') + ')' + ISNULL(' INCLUDE (' + mid.included_columns + ')', '') AS create_index_statement
    ,migs.*,mid.database_id
    ,mid.[object_id]
FROM sys.dm_db_missing_index_groups mig
INNER JOIN sys.dm_db_missing_index_group_stats migs
    ON migs.group_handle = mig.index_group_handle
INNER JOIN sys.dm_db_missing_index_details mid
    ON mig.index_handle = mid.index_handle
WHERE migs.avg_total_user_cost * (migs.avg_user_impact / 100.0) * (migs.user_seeks + migs.user_scans) > 10
ORDER BY migs.avg_total_user_cost * migs.avg_user_impact * (migs.user_seeks + migs.user_scans) DESC
 

This script is a suggestion from the umbraco community for creating index for tables.

The main script came from:

This is a bit dirty...but I need to mess with the database

Other similar topics:

  1. Database indexes
  2. Adding indexes to the umbraco database for performance gains