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:
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: