Schnelleinstieg Microsoft SQL Server 2012
Schnelleinstieg Microsoft SQL Server 2012
Schnelleinstieg Microsoft SQL Server 2012
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