15.09.2014 Aufrufe

Schnelleinstieg Microsoft SQL Server 2012

Schnelleinstieg Microsoft SQL Server 2012

Schnelleinstieg Microsoft SQL Server 2012

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

7 Grundlegendes Know-how für Administratoren und Entwickler<br />

Auch diese Sichten sind dem »sys«-Schema zugeordnet, beginnen allerdings mit den<br />

Buchstaben »dm_« (steht für »Dynamic Management«). SELECT * FROM SYS.DM_OS_<br />

SYS_MEMORY liefert Ihnen z.B. Arbeitsspeicherinformationen des Betriebssystems.<br />

7.2.3 Informationen und Leistungsdaten rundherum<br />

Wenn Sie sich die Systemsichten einmal in Ruhe ansehen, werden Sie feststellen,<br />

dass die Informationen innerhalb dieser Sichten sehr umfangreich sind. In diesem<br />

Zusammenhang möchten wir darauf hinweisen, dass sämtliche Verwaltungs- und<br />

Katalogsichten ausführlich in der <strong>SQL</strong>-<strong>Server</strong>-Dokumentation beschrieben sind.<br />

Die aus den Sichten zu gewinnenden Metadaten können Sie sehr gut dazu verwenden,<br />

um wichtige Informationen zu den Leistungsdaten von <strong>SQL</strong> <strong>Server</strong> zu erhalten.<br />

Der Bereich der über Systemsichten bereitgestellten Metadateninformationen reicht<br />

von Daten über die aktuelle Auslastung des Betriebssystems bis hin zu Informationen<br />

über Abfragen, die am meisten Abfragezeit benötigt haben. Diese Informationen<br />

erhalten Sie allerdings nur durch eine Kombination oder besser gesagt durch das Bilden<br />

von Verknüpfungen (Joins) zwischen den einzelnen Systemsichten.<br />

Das Beispielskript in Listing 7.2 verknüpft unterschiedliche dynamische Verwaltungssichten<br />

in einer SELECT-Abfrage und wertet sie aus. Diese Abfrage ermittelt für<br />

Sie die zehn langsamsten <strong>SQL</strong>-Befehle.<br />

SELECT TOP 10 CREATION_TIME, LAST_EXECUTION_TIME<br />

,TOTAL_PHYSICAL_READS, TOTAL_LOGICAL_READS<br />

,TOTAL_LOGICAL_WRITES, EXECUTION_COUNT<br />

,TOTAL_WORKER_TIME, TOTAL_ELAPSED_TIME<br />

,TOTAL_ELAPSED_TIME / EXECUTION_COUNT AVG_ELAPSED_TIME<br />

,SUBSTRING(ST.TEXT, (QS.STATEMENT_START_OFFSET/2) + 1,<br />

((CASE STATEMENT_END_OFFSET<br />

WHEN -1 THEN DATALENGTH(ST.TEXT)<br />

ELSE QS.STATEMENT_END_OFFSET END<br />

- QS.STATEMENT_START_OFFSET)/2) + 1) AS STATEMENT_TEXT<br />

FROM SYS.DM_EXEC_QUERY_STATS AS QS<br />

CROSS APPLY SYS.DM_EXEC_<strong>SQL</strong>_TEXT(QS.<strong>SQL</strong>_HANDLE) ST<br />

ORDER BY TOTAL_ELAPSED_TIME / EXECUTION_COUNT DESC;<br />

Listing 7.2 Ermitteln der zehn langsamsten <strong>SQL</strong>-Befehle durch Auswertung dynamischer<br />

Verwaltungssichten<br />

7.2.4 Scripting mit T-<strong>SQL</strong><br />

In vielen Beispielen innerhalb dieses Buches ist die Rede von T-<strong>SQL</strong>. T-<strong>SQL</strong> steht für<br />

»Transact <strong>SQL</strong>« und ist <strong>Microsoft</strong>s hauseigene, sehr mächtige Weiterentwicklung des<br />

148

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!