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. P>
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) p>
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? p>
6 Réponses :
I Utilisez surtout simplement le profileur et le visualiseur de plan d'exécution P>
À peu près tout ce dont vous avez besoin, pour des requêtes individuelles
profileur SQL (intégré): Surveillance avec SQL Profiler p>
SQL Benchmark Pro (Commercial) P>
SQL Server 2008 a le nouveau Collecteur de données P>
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 . p>
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!) p>
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?
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. P>
À mon avis, l'expérience et l'expérimentation sont les meilleurs outils pour écrire de bonnes requêtes SQL. P>
dans MySQL (peut être dans d'autres bases de données également) Vous pouvez également < Code> Expliquer code> 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. P>
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". P>
L'outil d'Adam est vraiment génial. Je l'ai utilisé et j'ai trouvé très utile pour régler mon dB.
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. P>
Vous vous brouillez des choses pour l'expérience? Ou votre expérience est-elle Burgeoning i>? +1 pour que Mitch est aswer.