Mediante este código de SQL SERVER, se pueden buscar los índices que faltan en todas las bases de datos de un servidor, y genera el código necesario a ejecutar para crearlos en una sola instrucción:
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SELECT db_name(database_id) as base,
MID.[statement] AS ObjectName
,MIGS.last_user_seek AS LastUserSeek
,MIGS.avg_user_impact
,(MIGS.user_seeks + MIGS.user_scans) as uso
,ROUND(MIGS.avg_total_user_cost
* MIGS.avg_user_impact
* (MIGS.user_seeks + MIGS.user_scans),0) AS Impact
,N’CREATE NONCLUSTERED INDEX TRIGGERDB_IDX1_’ + MID.[statement] +
N’ ON ‘ + MID.[statement] +
N’ (‘ + MID.equality_columns
+ ISNULL(‘, ‘ + MID.inequality_columns, N») +
N’) ‘ + ISNULL(N’INCLUDE (‘ + MID.included_columns + N’);’, ‘;’)
AS CreateStatement
FROM sys.dm_db_missing_index_group_stats AS MIGS
INNER JOIN sys.dm_db_missing_index_groups AS MIG
ON MIGS.group_handle = MIG.index_group_handle
INNER JOIN sys.dm_db_missing_index_details AS MID
ON MIG.index_handle = MID.index_handle
WHERE db_name(database_id) = ‘nombreBaseDatos’ — Si comentas esta linea te saca indices faltantes de todas las bases del servidor.
ORDER BY Impact DESC
Esperamos os resulte de utilidad.