Frage

Ich liebe die Art, wie ich ein Java / .NET App-Profil kann Performance-Engpässe oder Speicherprobleme zu finden. Zum Beispiel ist es sehr einfach, ein Performance-Engpass Blick auf die finden Aufrufbaum mit Ausführungszeiten und Aufruf Zählungen pro Methode . In SQL Server, ich habe gespeicherte Prozeduren, die andere gespeicherte Prozeduren aufrufen, die auf Ansichten abhängen, die auf Java / .NET-Methoden Aufruf andere Methoden ähnlich ist. So scheint es die gleiche Art von Profiler wäre hier sehr hilfreich sein. Allerdings sah ich weit und breit und nicht finden kann. Ist jemand bewusst solche Werkzeuge, entweder für SQL Server oder einem anderen DBMS?

Update: Vielen Dank fro Ihre Antworten rund um SQL Server Profiler, aber dieses Tool ist sehr begrenzt. Schauen Sie sich auf Screenshot .

War es hilfreich?

Lösung

Schauen Sie sich SQL Nexus-Tool . Dies hat einige gute Berichte über die Ermittlung von Engpässen. SQL Nexus ist ein Werkzeug, das Sie identifizieren die Ursache für SQL Server Performance-Probleme hilft. Es lädt und analysiert Leistungsdaten gesammelt von SQLDiag und PSSDiag. Es kann dramatisch die Zeit, reduzieren Sie manuell Daten zu analysieren verbringen.

In einem der Innen SQL 2005 Bücher (vielleicht T-SQL-Abfragen), war es eine coole Technik, bei der der Autor die SQL Profiler-Ausgabe in eine Tabelle Dumps oder Excel-Datei und legt eine Dreh die Ausgabe in einer ähnlich zu bekommen Format als Screenshot.

Ich habe keine integrierten SQL-Tools zu sehen, die Ihnen diese Art von Analyse gibt. Eine weitere nützliche Post .

Andere Tipps

Zusätzlich zu SQL Server Profiler, wie es in einem Kommentar von @Galwegian erwähnt, auch Ihren Ausführungsplan überprüfen, wenn Sie eine Abfrage ausführen.

http://www.sql-server-performance.com/tips /query_execution_plan_analysis_p1.aspx
http://en.wikipedia.org/wiki/Query_plan

Ein weiterer ganzer Thread zu dem SQL Server Profiler:

Identifizierung von SQL Server Leistungsprobleme

Ich verstehe, was Sie sprechen, aber in der Regel Datenbank-Optimierung erfolgt bei einer feinkörnigen Ebene. Wenn die Datenbank-Aktivität von einem Client betrieben wird, sollen Sie in der Lage sein, die vorhandenen Client-Profiler zu verwenden, um die Gesamtzeit auf jeden Schritt zu bekommen und dann die niedrig hängenden Früchte Adresse (ob in der Datenbank oder nicht).

Wenn Sie eine bestimmte Datenbank Schritt im Detail zum Profil benötigen, können Sie Profiler und eine Spur verwenden können.

Typischerweise hat der Zugriff auf die Datenbank eine gewisse Körnigkeit, die auf individueller Basis adressiert ist und die Datenbankaktivität wird mit allen Arten von Benutzerzugriff geht nicht linear, während ein Programm Profiler typischerweise einen linearen Pfad Codeprofilierungs.

Wie bereits erwähnt, SQL Server Profiler, die für die Überprüfung groß ist, was Sie Parameter ist Programm vorbei zu SQL usw. Es wird nicht einen Ausführungsbaum zeigt aber, wenn das ist, was Sie brauchen. Dafür alle ich denken kann, ist Show Plan zu verwenden, um zu sehen, was genau während der Laufzeit ausgeführt wird. Z.B. wenn Sie eine sp sind aufrufen, die eine Ansicht aufruft, Profiler zeigt Ihnen nur, dass die sp ausgeführt wurde und welche params wurden übergeben. Außerdem hat der Windows-Systemmonitor umfangreiche Laufzeit-Performance-Metriken spezifisch für SQL Server. Sie können es auf dem Server ausgeführt werden, oder ein Remote-Verbindung.

Performance-Engpässe zu finden, können Sie den Datenbankoptimierungsratgeber (gefunden in Menü Extras von SQL Server Management Studio verwenden. Es Anregungen bietet für Ihre Anfragen zu optimieren und bietet sie automatisch für Sie zu optimieren (zB die entsprechende Indizes erstellen, usw. )..

könnten Sie verwenden S ql Profiler - die die Profilierung umfasst Aspekt, aber ich neige davon mehr als Logging-Tool zu denken. Für die Ausführung der Diagnose, sollten Sie vielleicht nur an der Abfrage-Plan rel="nofollow .

Es gibt den SQL Server Profiler, aber trotz seiner Namen, es nicht tun, was Sie wollen, durch den Klang Ihrer Frage. Es wird Ihnen zeigen eine detaillierte Ansicht aller Anrufe in der Datenbank geht. Es ist besser für die Fehlersuche der App als Ganzes, nicht nur eine sproc zu einer Zeit

Klingt wie Sie auf müssen sehen die Ausführungsplan Ihre Fragen / SPOCs in Query Analyzer und geben Ihnen so etwas wie die Daten, die Sie suchen.

erwähnt Wie von mehreren Antworten wird der SQL Profiler zeigen, was Sie fordern. Was Sie sein müssen sicher tun auf den Ereignisse SP einzuschalten: StmtCompleted, die in der Stored Procedures-Gruppe ist, und wenn Sie die Abfrage wollen auf Showplan XML Statistik Profil und drehen Pläne, die in der Performance-Gruppe ist . Der XML-Plan letzte gibt Ihnen eine grafische Darstellung und zeigt die tatsächlichen Zeilen, die von jedem Schritt in dem Plan verarbeitet.

Wenn der Profiler App verlangsamt, filtern sie so viel wie möglich und betrachten auf eine Server-Seite Spur gehen.

HTH Andy

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top