Was sind Werkzeuge zur test-SQL-Anweisung Leistung?
In der nie endenden Suche nach Leistung (und meine eigenen Schlagwaffen Erfahrung), ich habe gelernt, ein paar Dinge, die könnte nach unten ziehen die Leistung einer SQL-Anweisung.
Obsessive Compulsive Unterabfragen Störung
Macht verrückte Typ-Konvertierungen (und verschachteln Sie diese in oblivion)
Group By aggregierten Funktionen, sagte der verrückte Typ-Konvertierungen
Where fldID in (wählen Sie ALLES aus meiner 5mil-Datensatz-Tabelle)
Ich in der Regel zu der Arbeit mit MSSQL. Welche tools sind zum testen der Leistung einer SQL-Anweisung? Sind diese tools gebaut und spezifisch für jeden Typ von DB-server? Oder gibt es Allgemeine tools zur Verfügung?
- Sie sind Schlagwaffen Dinge für die Erfahrung? Oder ist deine Erfahrung aufkeimende? <g/> +1 für Mitch ' s aswer.
Du musst angemeldet sein, um einen Kommentar abzugeben.
SQL Profiler (built-in): Überwachung mit SQL Profiler
SQL-Benchmark-Pro - (Commercial)
SQL Server 2008 ist die neue Datensammler
SQL Server 2005 (ab) hat eine fehlende Indizes (Dynamic Management View, DMV), die können Recht nützlich sein (aber nur für Abfragepläne aktuell im Plancache): Über die Funktion für Fehlende Indizes.
Da ist auch der SQL Server Database Engine Tuning Advisor, die nicht einen angemessenen job (nur nicht umsetzen, die alles schlägt!)
Habe ich meist nur verwenden, Profiler und der Ausführungsplan viewer
Ausführungspläne sind eines der ersten Dinge, die man beim debugging Abfrage von performance-Problemen. Ein Ausführungsplan wird Ihnen sagen, wie viel Zeit Sie ungefähr, verbrachte in jedem Teil der Abfrage verwendet werden, und kann verwendet werden, um schnell zu identifizieren, wenn Sie fehlende Indizes oder teure joins oder Schleifen.
MSSQL ist eine Datenbank-Optimierungsratgeber, die wird oft empfohlen Indizes für Tabellen, basierend auf gemeinsamen Abfragen ausführen, während die tuning-Zeit, aber wo es nicht umschreiben eine Abfrage für Sie.
Meiner Meinung nach, Erfahrung und Experimentierfreude sind die besten Werkzeuge für das schreiben von SQL-Abfragen.
In mysql (kann in anderen Datenbanken auch) können Sie
ERKLÄREN
Ihre Abfrage, um zu sehen, welche Datenbank-server darüber denkt. Diese Regel verwendet, um das entscheidet, welche Indizes erstellt werden soll. Und dieser build-in, so können Sie es verwenden, ohne zusätzliche software zu installieren.Adam Machanic hat ein einfaches tool namens SqlQueryStress, die von nutzen sein könnten. Es ist entworfen, um verwendet werden, um "einen kurzen performance-test gegen eine einzelne Abfrage, um zu testen, Ideen oder änderungen überprüfen".