sys.db_db_missing_index_* (vistas) --> Rastrean los índices que pudieran crearse. Son: sys.sys.db_db_missing_index_detais, sys.db_db_missing_index_group_stats y sys.db_db_missing_index_groups.

Para decidir si los índices propuestos serían ventajosos, se puede calcular de la siguiente manera:

    SELECT user_seeks * avg_total_user_cost * (avg_user_impact * 0.01) AS index_advantage, migs.last_user_seek, mid.statement as \'Database.Schema.Table\', mid.equality_columns, mid.inequality_columns, mid.included_columns, migs.unique_compiles, migs.user_seeks, migs.avg_total_user_cost, migs.avg_user_impact FROM sys.dm_db_missing_index_group_stats AS migs WITH (NOLOCK) INNER JOIN sys.dm_db_missing_index_groups AS mig WITH (NOLOCK) ON migs.group_handle = mig.index_group_handle INNER JOIN sys.dm_db_missing_index_details AS mid WITH (NOLOCK) ON mig.index_handle = mid.index_handle ORDER BY index_advantage DESC;
   
Si el valor supera 5000 indica que debería evaluarse la creación de determinados índices.
Si el valor supera los 10000, quiere decir que ya contamos con un índice que puede ofrecer una mejora de rendimiento significativa en operaciones de lectura.
Para recoger todos los planes de ejecución en la caché: SELECT * FROM sys.dm_exec_cached_plans cp CROSS APPLY sys.dm_exec_query_plan(cp.plan_handle);

Extraer las 5 querys más pesadas por consumo de CPU:
    SELECT TOP 5 total_worker_time/execution_count AS [Avg CPU Time], Plan_handle, query_plan FROM sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) ORDER BY total_worker_time/execution_count DESC;