7
votes

Quels outils sont disponibles pour tester les performances de l'instruction SQL?

Dans la recherche sans fin de performance (et mon propre expérience de matraque), j'ai appris quelques éléments qui pourraient faire glisser les performances d'une déclaration SQL.

trouble des sous-candidats compulsifs obsessionnels
Faire des conversions de type folle (et nidifier ceux-ci dans Oblivion) ​​
Groupe par des fonctions agrégées de ladite conversions de type fou de
Où fldid in (tout sélectionnez de ma table d'enregistrement 5mil)

Je travaille généralement avec MSSQL. Quels outils sont disponibles pour tester les performances d'une instruction SQL? Ces outils sont-ils intégrés et spécifiques à chaque type de serveur DB? Ou existe-t-il des outils généraux disponibles?


1 commentaires

Vous vous brouillez des choses pour l'expérience? Ou votre expérience est-elle Burgeoning ? +1 pour que Mitch est aswer.


6 Réponses :


3
votes

I Utilisez surtout simplement le profileur et le visualiseur de plan d'exécution


1 commentaires

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



9
votes

profileur SQL (intégré): Surveillance avec SQL Profiler

SQL Benchmark Pro (Commercial)

SQL Server 2008 a le nouveau Collecteur de données

SQL Server 2005 (à l'heure) a un index manquant View de gestion dynamique (DMV) qui peut être très utile (mais uniquement pour les plans de requête actuellement dans le cache du plan): À propos de la fonctionnalité d'index manquante .

Il existe également le serveur SQL conseiller de syntonisation de la base de données qui fait Un travail raisonnable (tout simplement pas implémenter tout ce qu'il suggère!)


1 commentaires

Merci, ça me fait preuve de commencer. Ceci couvre l'angle MSSQL, existe-t-il des outils généraux disponibles pour MySQL ou Oracle? Ou ces personnes auraient-ils leurs propres outils?



0
votes

MSSQL dispose d'un conseiller de syntonisation de la base de données qui recommandera souvent des index pour les tableaux basés sur des requêtes courantes exécutées pendant la période de syntonisation, mais il ne réécrit pas 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 commentaires

0
votes

dans MySQL (peut être dans d'autres bases de données également) Vous pouvez également < Code> Expliquer votre requête pour voir quel serveur de base de données y réfléchit. Ceci est généralement utilisé pour désirer quels index doivent être créés. Et celui-ci est intégré, vous pouvez donc l'utiliser sans installer de logiciels supplémentaires.


0 commentaires

0
votes

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 contre une seule requête, afin de tester des idées ou de valider des modifications".


1 commentaires

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



1
votes

Les plans d'exécution sont l'une des premières choses à regarder lors du débogage problèmes de performance de la requête. Un plan d'exécution vous indiquera combien de temps est dépensé à peu près dans chaque partie de votre requête et peut être utilisé pour identifier rapidement si vous manquez des index ou que vous avez des jointures ou des boucles coûteuses.


0 commentaires