2010-09-02 13 views
6

Vorrei uno strumento che monitorasse il server SQL mentre eseguivo il test della mia applicazione. L'applicativo farà ovviamente domande diverse.Strumento per trovare i colli di bottiglia del database in sql server

Dallo strumento Vorrei un output come: - questa interrogazione era lento a causa dell'indice manca su questo campo

e questo tipo di informazioni.

Ma mi piacerebbe avere un modo per evidenziare i dati cruciali, ci può essere ad esempio 100 indice mancante, ma 99 di loro migliorerebbero le prestazioni dello 0,05%, mentre uno di quelli darebbe un vantaggio del 6000% su una domanda. Quindi è importante evidenziare i punti caldi.

Anche un prodotto commerciale (con funzionalità complete, nessuna prova limitata) è desiderato.

risposta

11

Non è esattamente bisogno di uno strumento. Io personalmente uso la seguente query per mostrarmi ciò che gli indici di SQL Server pensa di cui ha bisogno, questo dimostra quanto spesso SQL Server guardò per l'indice, il miglioramento stimato ecc ...

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; 

Se si desidera identificare le query lente SQL Profiler è tuo amico, imposta un filtro sulla durata e sei pronto. Quindi eseguire questa query tramite Ottimizzazione guidata motore di database (entrambi forniti con SQL Server).

+0

Ho appena eseguito quella query su uno dei miei database. Potresti aggiungere un link a un documento che spiega come interpretare i risultati? Grazie ! –

+2

Trovato: http://sqlblogcasts.com/blogs/sarveshsingh/archive/2010/08/23/index-usage.aspx –

+1

http://msdn.microsoft.com/en-us/library/ms187974%28v= SQL.90% 29.aspx ecco qua :) –

2
  • SQL Server Profiler
  • SQL Database Advisor
0

Dai un'occhiata a SQL Copilot. Esiste una versione gratuita e la versione completa è economica (circa 50 $).
Nota che mentre lo uso e lo trovo utile per sollevare alcuni problemi e come strumento di apprendimento, sono ancora alla ricerca di altri strumenti.
C'è molto da imparare su questo delicato argomento (non) fortunatamente.

Problemi correlati