2009-10-12 6 views
7

Dans la recherche sans fin des performances (et de ma propre expérience de matraquage), j'ai appris quelques choses qui pourraient faire baisser les performances d'une instruction SQL.Quels outils sont disponibles pour tester les performances des instructions SQL?

Compulsif Subqueries Trouble
Faire des conversions de types fous (et nid ceux dans l'oubli)
Groupe par des fonctions globales desdites conversions de type fou
Où fldID dans (sélectionnez tout de ma 5mil table d'enregistrements)

Je travaille généralement avec MSSQL. Quels outils sont disponibles pour tester la performance d'une instruction SQL? Ces outils sont-ils intégrés et spécifiques à chaque type de serveur de base de données? Ou y a-t-il des outils généraux disponibles?

+0

Vous battez des choses pour l'expérience? Ou votre expérience * est-elle en plein essor *? +1 pour l'aswer de Mitch. – DaveE

Répondre

9

Profiler SQL (intégré): Monitoring with SQL Profiler

SQL Benchmark Pro (Commercial)

SQL Server 2008 a la nouvelle Data Collector

SQL Server 2005 (versions ultérieures) possède un index DMV (Dynamic Management View) qui peut être très utile (mais uniquement pour les plans de requête actuellement dans le cache de plan): About the Missing Indexes Feature.

Il y a aussi le SQL Server Database Engine Tuning Advisor qui fait un travail raisonnable (juste ne pas mettre en œuvre tout ce qu'il suggère!)

+0

Merci, cela m'a presque commencé. Cela couvre l'angle MSSQL, existe-t-il des outils généraux disponibles pour MySQL ou Oracle? Ou auraient-ils leurs propres outils? – MoSlo

3

Je la plupart du temps il suffit d'utiliser Profiler et le spectateur plan d'exécution

+0

À peu près tout ce dont vous avez besoin, jamais, pour des requêtes individuelles – gbn

0

MSSQL a un conseiller de réglage de base de données qui recommandera souvent des index pour les tables basées sur des requêtes communes gérées au cours la période de réglage, mais il réécrit une requête pour vous. À mon avis, l'expérience et l'expérimentation sont les meilleurs outils pour écrire de bonnes requêtes SQL.

0

Dans mysql (peut être aussi dans d'autres bases de données) vous pouvez EXPLAIN votre requête pour voir quel serveur de base de données pense à ce sujet. Ceci habituellement utilisé pour décider quels index devraient être créés. Et celui-ci est intégré, donc vous pouvez l'utiliser sans installer de logiciel supplémentaire.

0

Adam Machanic a un outil simple appelé SqlQueryStress qui pourrait être utile. Il est conçu pour être utilisé pour "exécuter un test de performance rapide sur une seule requête, afin de tester des idées ou de valider des modifications".

+0

L'outil d'Adam est vraiment génial. Je l'ai utilisé et trouvé très utile pour régler mon DB. –

1

Execution Plans sont l'une des premières choses à prendre en compte lors du débogage des problèmes de performances de requête. Un plan d'exécution vous dira combien de temps est passé dans chaque partie de votre requête, et peut être utilisé pour identifier rapidement s'il vous manque des index ou si vous avez des jointures ou des boucles coûteuses.

Questions connexes