2010-09-02 5 views
6

Je voudrais un outil qui surveille le serveur SQL pendant que je teste mon application. L'applicatino va bien sûr exécuter différentes requêtes.Outil pour trouver les goulots d'étranglement de la base de données dans le serveur SQL

De l'outil, je voudrais une sortie comme: - cette requête a été lente, car l'index est manquant sur ce champ

et ce genre d'info.

Mais je voudrais avoir un moyen de mettre en évidence des données cruciales, il peut y avoir par exemple 100 indices manquants, mais 99 d'entre eux amélioreraient la performance de 0,05%, tandis que l'un d'entre eux donnerait un avantage de 6000% une requête. La mise en évidence des points chauds est également importante.

Un produit commercial (avec toutes les caractéristiques - sans limitation - essai) est également requis.

Répondre

11

Vous ne devez pas exactement un outil. Personnellement, j'utiliser la requête suivante pour me montrer ce que les index SQL Server pense qu'il a besoin, cela montre combien de fois SQL Server a cherché l'indice, l'amélioration estimée etc ...

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 vous souhaitez identifier les requêtes lentes Générateur de profils SQL est votre ami, il suffit de définir un filtre sur la durée et vous êtes prêt. Ensuite, exécutez cette requête via l'Assistant Paramétrage du moteur de base de données (tous deux fournis avec SQL Server).

+0

Je viens d'exécuter cette requête sur l'une de mes bases de données. Pourriez-vous ajouter un lien vers un document expliquant comment interpréter les résultats? Merci ! –

+2

J'ai trouvé: http://sqlblogcasts.com/blogs/sarveshsingh/archive/2010/08/23/index-usage.aspx –

+1

http://msdn.microsoft.com/fr-fr/library/ms187974%28v= SQL.90% 29.aspx là vous allez :) –

2
  • Profiler SQL Server
  • Advisor SQL Database
0

Jetez un coup d'œil à SQL Copilot. Il existe une version gratuite, et la version complète est bon marché (environ 50 $).
Notez que même si je l'utilise et l'ai trouvé utile pour soulever quelques problèmes et comme outil d'apprentissage, je suis toujours à la recherche d'autres outils.
Il y a beaucoup à apprendre sur ce sujet difficile (in) fortuné.

Questions connexes