Average 28000 requests/month












 

This is a script to generate create index statements for all the currently required indexes.

The resulting index statement is to be treated as a starting point - the ordering of the columns is not optimised for the particular queries.

:setvar databasename TESA_3_23_0_SystemTest

use $(databasename)
go

SELECT TOP 100 'CREATE NONCLUSTERED INDEX IX1_' + object_name(c.object_id) + left(cast(newid() as varchar(500)),5) + char(10)
+ ' on ' + object_name(c.object_id)
+ '('
+ case when c.equality_columns is not null and c.inequality_columns is not null then c.equality_columns + ',' + c.inequality_columns
when c.equality_columns is not null and c.inequality_columns is null then c.equality_columns
when c.inequality_columns is not null then c.inequality_columns
end
+ ')' + char(10)
+ case when c.included_columns is not null then 'Include (' + c.included_columns + ')'
else ''
end as includes
FROM sys.dm_db_missing_index_group_stats a
inner join sys.dm_db_missing_index_groups b
on a.group_handle = b.index_group_handle
inner join sys.dm_db_missing_index_details c
on c.index_handle = b.index_handle
where db_name(database_id) = '$(databasename)'
and equality_columns is not null
ORDER BY a.avg_total_user_cost * a.avg_user_impact * (a.user_seeks + a.user_scans)DESC

--
-- Query to list required indexes
--
--use $(databasename)
--go
--SELECT left(cast(newid() as varchar(500)),5) as x, db_name(database_id),object_name(c.object_id), c.equality_columns, c.inequality_columns, c.included_columns
--FROM sys.dm_db_missing_index_group_stats a
--inner join sys.dm_db_missing_index_groups b
--on a.group_handle = b.index_group_handle
--inner join sys.dm_db_missing_index_details c
--on c.index_handle = b.index_handle
--where db_name(database_id) = '$(databasename)'
--ORDER BY a.avg_total_user_cost * a.avg_user_impact * (a.user_seeks + a.user_scans)DESC
 
 

July 2005