Profilerstellungsinfrastruktur für AbfragenQuery Profiling Infrastructure

Anwendungsbereich:Applies to: Ja SQL ServerSQL Server (alle unterstützten Versionen)yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL DatabaseAnwendungsbereich:Applies to: Ja SQL ServerSQL Server (alle unterstützten Versionen)yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL Database

Die SQL Server-Datenbank-EngineSQL Server Database Engine bietet die Möglichkeit, auf Laufzeitinformationen für Abfrageausführungspläne zuzugreifen.The SQL Server-Datenbank-EngineSQL Server Database Engine provides the ability to access runtime information on query execution plans. Eine der wichtigsten Aktionen beim Auftreten eines Leistungsproblems besteht darin, ein genaues Verständnis der Workload zu erlangen, die ausgeführt wird, und zu ermitteln, wie die Ressourcenauslastung gesteuert wird.One of the most important actions when a performance issue occurs, is to get precise understanding on the workload that is executing and how resource usage is being driven. Für diese Erkenntnisse ist Zugriff auf den tatsächlichen Ausführungsplan wichtig.For this, access to the actual execution plan is important.

Während der Abschluss der Abfrage eine Voraussetzung für die Verfügbarkeit eines aktuellen Abfrageplans ist, können Live-Abfragestatistiken Einblicke in Echtzeit in den Abfrageausführungsprozess gewähren, während die Daten von einem Abfrageplanoperator zu einem anderen fließen.While query completion is a prerequisite for the availability of an actual query plan, live query statistics can provide real-time insights into the query execution process as the data flows from one query plan operator to another. Der Live-Abfrageplan zeigt den gesamten Abfragestatus und die Laufzeit-Ausführungsstatistik auf Operatorebene an, wie z.B. die Anzahl der erzeugten Zeilen, die verstrichene Zeit, den Operatorstatus usw. Da diese Daten in Echtzeit verfügbar sind, ohne auf den Abschluss der Abfrage warten zu müssen, sind diese Ausführungsstatistiken äußerst nützlich für das Debuggen von Leistungsproblemen bei Abfragen, beispielsweise bei Abfragen mit langer Ausführungszeit und Abfragen, die unbegrenzt ausgeführt und nie abgeschlossen werden.The live query plan displays the overall query progress and operator-level run-time execution statistics such as the number of rows produced, elapsed time, operator progress, etc. Because this data is available in real time without needing to wait for the query to complete, these execution statistics are extremely useful for debugging query performance issues, such as long running queries, and queries that run indefinitely and never finish.

Standard-Profilerstellungsinfrastruktur für AbfrageausführungsstatistikenThe standard query execution statistics profiling infrastructure

Die Profilerstellungsinfrastruktur für Abfrageausführungsstatistiken (Standardprofilerstellung) muss aktiviert sein, um Informationen über Ausführungspläne zu erfassen, nämlich Zeilenanzahl, CPU- und E/A-Auslastung.The query execution statistics profile infrastructure, or standard profiling, must be enabled to collect information about execution plans, namely row count, CPU and I/O usage. Die folgenden Methoden zum Erfassen von Ausführungsplaninformationen für eine Zielsitzung nutzen die Standard-Profilerstellungsinfrastruktur:The following methods of collecting execution plan information for a target session leverage the standard profiling infrastructure:

Hinweis

Wenn Sie auf die Schaltfläche Live-Abfragestatistik einschließen in SQL Server Management StudioSQL Server Management Studio klicken, wird die Standard-Profilerstellungsinfrastruktur verwendet.Clicking the button Include Live Query Statistics in SQL Server Management StudioSQL Server Management Studio leverages the standard profiling infrastructure.
Ist die Lightweight-Infrastruktur zur Profilerstellung in höheren Versionen von SQL ServerSQL Server aktiviert, wird sie von Live-Abfragestatistiken anstelle der Standardprofilerstellung verwendet, wenn diese über den Aktivitätsmonitor oder durch direktes Abfragen der sys.dm_exec_query_profiles-DMV angezeigt werden.In higher versions of SQL ServerSQL Server, if the lightweight profiling infrastructure is enabled, then it is leveraged by live query statistics instead of standard profiling when viewed through Activity Monitor or directly querying the sys.dm_exec_query_profiles DMV.

Die folgenden Methoden zum globalen Erfassen von Ausführungsplaninformationen für alle Sitzungen nutzen die Standard-Profilerstellungsinfrastruktur:The following methods of collecting execution plan information globally for all sessions leverage the standard profiling infrastructure:

Wenn Sie eine erweiterte Ereignissitzung ausführen, die das Ereignis query_post_execution_showplan verwendet, dann wird die sys.dm_exec_query_query_profiles-DMV ebenfalls mit Daten aufgefüllt. Dies ermöglicht Live-Abfragestatistiken für alle Sitzungen, indem der Aktivitätsmonitor verwendet oder die DMV direkt abgefragt wird.When running an extended event session that uses the query_post_execution_showplan event, then the sys.dm_exec_query_profiles DMV is also populated, which enables live query statistics for all sessions, using Activity Monitor or directly querying the DMV. Weitere Informationen finden Sie unter Live Query Statistics.For more information, see Live Query Statistics.

Die einfache Profilerstellungsinfrastruktur für die AbfrageausführungsstatistikThe lightweight query execution statistics profiling infrastructure

Beginnend mit SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2 und SQL Server 2016 (13.x)SQL Server 2016 (13.x) wurde eine neue einfache Profilerstellungsinfrastruktur für die Abfrageausführungsstatistik (oder einfache Profilerstellung) eingeführt.Starting with SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2 and SQL Server 2016 (13.x)SQL Server 2016 (13.x), a new lightweight query execution statistics profiling infrastructure, or lightweight profiling was introduced.

Hinweis

Nativ kompilierte gespeicherte Prozeduren werden bei der einfachen Profilerstellung nicht unterstützt.Natively compiled stored procedures are not supported with lightweight profiling.

Einfache Profilerstellungsinfrastruktur für die Abfrageausführungsstatistik v1Lightweight query execution statistics profiling infrastructure v1

Gilt für: SQL ServerSQL Server (SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2 bis SQL Server 2016 (13.x)SQL Server 2016 (13.x))Applies to: SQL ServerSQL Server (SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2 through SQL Server 2016 (13.x)SQL Server 2016 (13.x)).

Beginnend mit SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2 und SQL Server 2016 (13.x)SQL Server 2016 (13.x) wurde der Leistungsmehraufwand für die Erfassung von Informationen zu Ausführungsplänen durch die Einführung von einfacher Profilerstellung verringert.Starting with SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2 and SQL Server 2016 (13.x)SQL Server 2016 (13.x), the performance overhead to collect information about execution plans was reduced with the introduction of lightweight profiling. Im Gegensatz zur Standardprofilerstellung erfasst die einfache Profilerstellung keine CPU-Laufzeitinformationen.Unlike standard profiling, lightweight profiling does not collect CPU runtime information. Allerdings erfasst die einfache Profilerstellung weiterhin die Zeilenanzahl und Informationen zur E/A-Verwendung.However, lightweight profiling still collects row count and I/O usage information.

Ein neues erweitertes Ereignis query_thread_profile wurde ebenfalls eingeführt, das einfache Profilerstellung nutzt.A new query_thread_profile extended event was also introduced that leverages lightweight profiling. Dieses erweiterte Ereignis stellt Statistiken zur Abfrageausführung pro Operator bereit und ermöglicht einen besseren Einblick in die Leistung der einzelnen Knoten und Threads.This extended event exposes per-operator execution statistics allowing more insight on the performance of each node and thread. Eine Beispielsitzung mit diesem erweiterten Ereignis kann wie im folgenden Beispiel konfiguriert werden:A sample session using this extended event can be configured as in the below example:

CREATE EVENT SESSION [NodePerfStats] ON SERVER
ADD EVENT sqlserver.query_thread_profile(
  ACTION(sqlos.scheduler_id,sqlserver.database_id,sqlserver.is_system,
    sqlserver.plan_handle,sqlserver.query_hash_signed,sqlserver.query_plan_hash_signed,
    sqlserver.server_instance_name,sqlserver.session_id,sqlserver.session_nt_username,
    sqlserver.sql_text))
ADD TARGET package0.ring_buffer(SET max_memory=(25600))
WITH (MAX_MEMORY=4096 KB,
  EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,
  MAX_DISPATCH_LATENCY=30 SECONDS,
  MAX_EVENT_SIZE=0 KB,
  MEMORY_PARTITION_MODE=NONE,
  TRACK_CAUSALITY=OFF,
  STARTUP_STATE=OFF);

Hinweis

Weitere Informationen zum Leistungsmehraufwand bei der Abfrageprofilerstellung finden Sie im Blogbeitrag Developers Choice: Query progress - anytime, anywhere (Von Entwicklern inspiriert: Abfragestatus – jederzeit und überall)For more information on the performance overhead of query profiling, see the blog post Developers Choice: Query progress - anytime, anywhere.

Wenn Sie eine erweiterte Ereignissitzung ausführen, die das Ereignis query_thread_profile verwendet, dann wird die sys.dm_exec_query_query_profiles-DMV ebenfalls unter Verwendung von einfacher Profilerstellung mit Daten aufgefüllt. Dies ermöglicht Live-Abfragestatistiken für alle Sitzungen, indem der Aktivitätsmonitor verwendet oder die DMV direkt abgefragt wird.When running an extended event session that uses the query_thread_profile event, then the sys.dm_exec_query_profiles DMV is also populated using lightweight profiling, which enables live query statistics for all sessions, using Activity Monitor or directly querying the DMV.

Einfache Profilerstellungsinfrastruktur für die Abfrageausführungsstatistik v2Lightweight query execution statistics profiling infrastructure v2

Gilt für: SQL ServerSQL Server (SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1 bis SQL Server 2017 (14.x)SQL Server 2017 (14.x))Applies to: SQL ServerSQL Server (SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1 through SQL Server 2017 (14.x)SQL Server 2017 (14.x)).

SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1 enthält eine überarbeitete Version der einfachen Profilerstellung mit minimalem Mehraufwand.SP1 includes a revised version of lightweight profiling with minimal overhead. Einfache Profilerstellung kann auch global über das Ablaufverfolgungsflag 7412 für die Versionen aktiviert werden, die oben unter Gilt für angegeben werden.Lightweight profiling can also be enabled globally using trace flag 7412 for the versions stated above in Applies to. Eine neue DMF sys.dm_exec_query_statistics_xml wurde eingeführt, um den Abfrageausführungsplan für In-Flight-Anforderungen zurückzugeben.A new DMF sys.dm_exec_query_statistics_xml is introduced to return the query execution plan for in-flight requests.

Beginnend mit SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP2 CU3 und SQL Server 2017 (14.x)SQL Server 2017 (14.x) CU11 gilt Folgendes: Wenn einfache Profilerstellung nicht global aktiviert ist, kann das Argument QUERY_PLAN_PROFILE des neuen USE HINT-Abfragehinweises verwendet werden, um einfache Profilerstellung auf Abfrageebene für jede beliebige Sitzung zu aktivieren.Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP2 CU3 and SQL Server 2017 (14.x)SQL Server 2017 (14.x) CU11, if lightweight profiling is not enabled globally then the new USE HINT query hint argument QUERY_PLAN_PROFILE can be used to enable lightweight profiling at the query level, for any session. Wenn eine Abfrage, die diesen neuen Hinweis enthält, abgeschlossen wird, wird auch ein neues erweitertes Ereignis query_plan_profile ausgegeben, das XML für einen tatsächlichen Ausführungsplan ähnlich dem erweiterten Ereignis query_post_execution_showplan bereitstellt.When a query that contains this new hint finishes, a new query_plan_profile extended event is also output that provides an actual execution plan XML similar to the query_post_execution_showplan extended event.

Hinweis

Das erweiterte Ereignis query_plan_profile nutzt zudem die einfache Profilerstellung, auch wenn der Abfragehinweis nicht verwendet wird.The query_plan_profile extended event also leverages lightweight profiling even if the query hint is not used.

Eine einfache Sitzung mit dem erweiterten Ereignis query_plan_profile kann wie im unten stehenden Beispiel konfiguriert werden:A sample session using the query_plan_profile extended event can be configured like the example below:

CREATE EVENT SESSION [PerfStats_LWP_Plan] ON SERVER
ADD EVENT sqlserver.query_plan_profile(
  ACTION(sqlos.scheduler_id,sqlserver.database_id,sqlserver.is_system,
    sqlserver.plan_handle,sqlserver.query_hash_signed,sqlserver.query_plan_hash_signed,
    sqlserver.server_instance_name,sqlserver.session_id,sqlserver.session_nt_username,
    sqlserver.sql_text))
ADD TARGET package0.ring_buffer(SET max_memory=(25600))
WITH (MAX_MEMORY=4096 KB,
  EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,
  MAX_DISPATCH_LATENCY=30 SECONDS,
  MAX_EVENT_SIZE=0 KB,
  MEMORY_PARTITION_MODE=NONE,
  TRACK_CAUSALITY=OFF,
  STARTUP_STATE=OFF);

Einfache Profilerstellungsinfrastruktur für die Abfrageausführungsstatistik v3Lightweight query execution statistics profiling infrastructure v3

Gilt für: SQL ServerSQL Server (ab SQL Server 2019 (15.x)SQL Server 2019 (15.x)) und Azure SQL-DatenbankAzure SQL DatabaseApplies to: SQL ServerSQL Server (starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and Azure SQL-DatenbankAzure SQL Database

SQL Server 2019 (15.x)SQL Server 2019 (15.x) und Azure SQL-DatenbankAzure SQL Database enthalten eine neu überarbeitete Version der einfachen Profilerstellung, die Informationen zur Anzahl der Zeilen für alle Ausführungen erfasst.and Azure SQL-DatenbankAzure SQL Database include a newly revised version of lightweight profiling collecting row count information for all executions. Einfache Profilerstellung ist in SQL Server 2019 (15.x)SQL Server 2019 (15.x) und Azure SQL-DatenbankAzure SQL Database standardmäßig aktiviert.Lightweight profiling is enabled by default on SQL Server 2019 (15.x)SQL Server 2019 (15.x) and Azure SQL-DatenbankAzure SQL Database. Ab SQL Server 2019 (15.x)SQL Server 2019 (15.x) hat das Ablaufverfolgungsflag 7412 keine Auswirkungen.Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x), trace flag 7412 has no effect. Die Lightweight-Profilerstellung kann mithilfe der datenbankweit gültigen Konfiguration LIGHTWEIGHT_QUERY_PROFILING auf Datenbankebene deaktiviert werden: ALTER DATABASE SCOPED CONFIGURATION SET LIGHTWEIGHT_QUERY_PROFILING = OFF;.Lightweight profiling can be disabled at the database level using the LIGHTWEIGHT_QUERY_PROFILING database scoped configuration: ALTER DATABASE SCOPED CONFIGURATION SET LIGHTWEIGHT_QUERY_PROFILING = OFF;.

Die neue dynamische Verwaltungsfunktion sys.dm_exec_query_plan_stats wird eingeführt, um das Äquivalent des letzten bekannten, tatsächlichen Ausführungsplans für die meisten Abfragen zurückzugeben. Diese heißt Abfrageplanstatistik.A new DMF sys.dm_exec_query_plan_stats is introduced to return the equivalent of the last known actual execution plan for most queries, and is called last query plan statistics. Die letzte Abfrageplanstatistik kann auf Datenbankebene mithilfe der datenbankweit gültigen Konfiguration LAST_QUERY_PLAN_STATS deaktiviert werden: ALTER DATABASE SCOPED CONFIGURATION SET LAST_QUERY_PLAN_STATS = ON;.The last query plan statistics can be enabled at the database level using the LAST_QUERY_PLAN_STATS database scoped configuration: ALTER DATABASE SCOPED CONFIGURATION SET LAST_QUERY_PLAN_STATS = ON;.

Im Gegensatz zum Ereignis query_post_execution_showplan, das die Standardprofilerstellung nutzt, erfasst das neue erweiterte Ereignis query_post_execution_plan_profile das Äquivalent eines tatsächlichen Ausführungsplans mithilfe einfacher Profilerstellung.A new query_post_execution_plan_profile extended event collects the equivalent of an actual execution plan based on lightweight profiling, unlike query_post_execution_showplan which uses standard profiling. Sie können eine Beispielsitzung wie im folgenden Beispiel mithilfe des erweiterten Ereignisses query_post_execution_plan_profile konfigurieren:A sample session using the query_post_execution_plan_profile extended event can be configured like the example below:

CREATE EVENT SESSION [PerfStats_LWP_All_Plans] ON SERVER
ADD EVENT sqlserver.query_post_execution_plan_profile(
  ACTION(sqlos.scheduler_id,sqlserver.database_id,sqlserver.is_system,
    sqlserver.plan_handle,sqlserver.query_hash_signed,sqlserver.query_plan_hash_signed,
    sqlserver.server_instance_name,sqlserver.session_id,sqlserver.session_nt_username,
    sqlserver.sql_text))
ADD TARGET package0.ring_buffer(SET max_memory=(25600))
WITH (MAX_MEMORY=4096 KB,
  EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,
  MAX_DISPATCH_LATENCY=30 SECONDS,
  MAX_EVENT_SIZE=0 KB,
  MEMORY_PARTITION_MODE=NONE,
  TRACK_CAUSALITY=OFF,
  STARTUP_STATE=OFF);

Beispiel 1: Erweiterte Ereignissitzung mit der StandardprofilerstellungExample 1 - Extended Event session using standard profiling

CREATE EVENT SESSION [QueryPlanOld] ON SERVER 
ADD EVENT sqlserver.query_post_execution_showplan(
    ACTION(sqlos.task_time, sqlserver.database_id, 
    sqlserver.database_name, sqlserver.query_hash_signed, 
    sqlserver.query_plan_hash_signed, sqlserver.sql_text))
ADD TARGET package0.event_file(SET filename = N'C:\Temp\QueryPlanStd.xel')
WITH (MAX_MEMORY=4096 KB, EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS, 
    MAX_DISPATCH_LATENCY=30 SECONDS, MAX_EVENT_SIZE=0 KB, 
    MEMORY_PARTITION_MODE=NONE, TRACK_CAUSALITY=OFF, STARTUP_STATE=OFF);

Beispiel 2: Erweiterte Ereignissitzung mit der einfachen ProfilerstellungExample 2 - Extended Event session using lightweight profiling

CREATE EVENT SESSION [QueryPlanLWP] ON SERVER 
ADD EVENT sqlserver.query_post_execution_plan_profile(
    ACTION(sqlos.task_time, sqlserver.database_id, 
    sqlserver.database_name, sqlserver.query_hash_signed, 
    sqlserver.query_plan_hash_signed, sqlserver.sql_text))
ADD TARGET package0.event_file(SET filename=N'C:\Temp\QueryPlanLWP.xel')
WITH (MAX_MEMORY=4096 KB, EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS, 
    MAX_DISPATCH_LATENCY=30 SECONDS, MAX_EVENT_SIZE=0 KB, 
    MEMORY_PARTITION_MODE=NONE, TRACK_CAUSALITY=OFF, STARTUP_STATE=OFF);

Leitfaden für die Verwendung der Infrastruktur zur AbfrageprofilerstellungQuery Profiling Infrastruture usage guidance

In der folgenden Tabelle werden die Aktionen zum Aktivieren der Standard- oder Lightweight-Profilerstellung zusammengefasst, sowohl global (auf Serverebene) als auch in einer einzelnen Sitzung.The following table summarizes the actions to enable either standard profiling or lightweight profiling, both globally (at the server level) or in a single session. Schließt auch die niedrigste Version ein, für die die Aktion verfügbar ist.Also includes the earliest version for which the action is available.

ScopeScope StandardprofilerstellungStandard Profiling Lightweight-ProfilerstellungLightweight Profiling
GlobalGlobal xEvent-Sitzung mit query_post_execution_showplan XE, ab SQL Server 2012 (11.x)SQL Server 2012 (11.x)xEvent session with the query_post_execution_showplan XE; Starting with SQL Server 2012 (11.x)SQL Server 2012 (11.x) Ablaufverfolgungsflag 7412, ab SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1Trace Flag 7412; Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1
GlobalGlobal SQL-Ablaufverfolgung und SQL Server Profiler mit Ablaufverfolgungsereignis Showplan XML, ab SQL Server 2000SQL Trace and SQL Server Profiler with the Showplan XML trace event; Starting with SQL Server 2000 xEvent-Sitzung mit query_thread_profile XE, ab SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2xEvent session with the query_thread_profile XE; Starting with SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2
GlobalGlobal - xEvent-Sitzung mit query_post_execution_plan_profile XE, ab SQL Server 2019 (15.x)SQL Server 2019 (15.x)xEvent session with the query_post_execution_plan_profile XE; Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)
SitzungSession Verwendung von SET STATISTICS XML ON, ab SQL Server 2000Use SET STATISTICS XML ON; Starting with SQL Server 2000 Verwendung des QUERY_PLAN_PROFILE-Abfragehinweises zusammen mit einer xEvent-Sitzung mit query_plan_profile XE, ab SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP2 CU3 und SQL Server 2017 (14.x)SQL Server 2017 (14.x) CU11Use the QUERY_PLAN_PROFILE query hint together with an xEvent session with the query_plan_profile XE; Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP2 CU3 and SQL Server 2017 (14.x)SQL Server 2017 (14.x) CU11
SitzungSession Verwendung von SET STATISTICS PROFILE ON, ab SQL Server 2000Use SET STATISTICS PROFILE ON; Starting with SQL Server 2000 -
SitzungSession Klick auf die Schaltfläche Live-Abfragestatistik in SSMS, ab SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2Click the Live Query Statistics button in SSMS; Starting with SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2 -

BemerkungenRemarks

Wichtig

Aufgrund einer möglichen zufälligen AV bei der Ausführung einer gespeicherten Überwachungsprozedur, die auf sys.dm_exec_query_statistics_xml verweist, müssen Sie sicherstellen, dass KB 4078596 in SQL Server 2016 (13.x)SQL Server 2016 (13.x) und SQL Server 2017 (14.x)SQL Server 2017 (14.x) installiert ist.Due to a possible random AV while executing a monitoring stored procedure that references sys.dm_exec_query_statistics_xml, ensure KB 4078596 is installed in SQL Server 2016 (13.x)SQL Server 2016 (13.x) and SQL Server 2017 (14.x)SQL Server 2017 (14.x).

Beginnend mit der einfachen Profilerstellung v2 und ihrem geringen Mehraufwand kann jeder Server, der nicht bereits CPU-gebunden ist, einfache Profilerstellung kontinuierlich ausführen und es Datenbankexperten ermöglichen, jederzeit auf jede aktuell ausgeführte Ausführung zuzugreifen (z.B. mit dem Aktivitätsmonitor oder durch direktes Abfragen von sys.dm_exec_query_profiles) und den Abfrageplan mit Laufzeitstatistiken abzurufen.Starting with lightweight profiling v2 and its low overhead, any server that is not already CPU bound can run lightweight profiling continuously, and allow database professionals to tap into any running execution at any time, for example using Activity Monitor or directly querying sys.dm_exec_query_profiles, and get the query plan with runtime statistics.

Weitere Informationen zum Leistungsmehraufwand bei der Abfrageprofilerstellung finden Sie im Blogbeitrag Developers Choice: Query progress - anytime, anywhere (Von Entwicklern inspiriert: Abfragestatus – jederzeit und überall)For more information on the performance overhead of query profiling, see the blog post Developers Choice: Query progress - anytime, anywhere.

Hinweis

Erweiterte Ereignisse, die die einfache Profilerstellung nutzen, verwenden die Informationen der Standardprofilerstellung, wenn die Standardprofilerstellungsinfrastruktur bereits aktiviert ist.Extended Events that leverage lightweight profiling will use information from standard profiling in case the standard profiling infrastructure is already enabled. Dies tritt beispielsweise auf, wenn eine Sitzung mit dem erweiterten Ereignis query_post_execution_showplan ausgeführt und eine weitere Sitzung mit query_post_execution_plan_profile gestartet wird.For example, an extended event session using query_post_execution_showplan is running, and another session using query_post_execution_plan_profile is started. Die zweite Sitzung verwendet weiterhin die Informationen der Standardprofilerstellung.The second session will still use information from standard profiling.

Hinweis

In SQL Server 2017 (14.x)SQL Server 2017 (14.x) ist die Lightweight-Profilerstellung standardmäßig deaktiviert, sie wird jedoch aktiviert, wenn eine XEvent-Ablaufverfolgung mit query_post_execution_plan_profile gestartet wird. Sie wird wieder deaktiviert, wenn die Ablaufverfolgung beendet wird.On SQL Server 2017 (14.x)SQL Server 2017 (14.x), Lightweight Profiling is off by default but is activated when an XEvent trace relying on query_post_execution_plan_profile is started, and is then deactivated again when the trace is stopped. Daher wird dringend empfohlen, die Lightweight-Profilerstellung mit dem Ablaufverfolgungsflag 7412 global zu aktivieren, wenn auf query_post_execution_plan_profile basierende XEvent-Ablaufverfolgungen häufig für eine SQL Server 2017 (14.x)SQL Server 2017 (14.x)-Instanz gestartet und beendet werden, um den Mehraufwand durch die wiederholte Aktivierung/Deaktivierung zu vermeiden.As a consequence, if Xevent traces based on query_post_execution_plan_profile are frequently started and stopped on a SQL Server 2017 (14.x)SQL Server 2017 (14.x) instance, it is strongly advised to activate Lightweight Profiling at global level with traceflag 7412 to avoid the repeated activation/deactivation overhead.

Weitere InformationenSee Also

Überwachen und Optimieren der Leistung Monitor and Tune for Performance
Tools für die Leistungsüberwachung und -optimierung Performance Monitoring and Tuning Tools
Öffnen des Aktivitätsmonitors (SQL Server Management Studio) Open Activity Monitor (SQL Server Management Studio)
Aktivitätsmonitor Activity Monitor
Überwachen der Leistung mit dem Abfragespeicher Monitoring Performance By Using the Query Store
Überwachen der Systemaktivität mit erweiterten Ereignissen Monitor System Activity Using Extended Events
sys.dm_exec_query_statistics_xml sys.dm_exec_query_statistics_xml
sys.dm_exec_query_profiles sys.dm_exec_query_profiles
Ablaufverfolgungsflags Trace flags
Referenz zu logischen und physischen Showplanoperatoren Showplan Logical and Physical Operators Reference
Tatsächlicher Ausführungsplan actual execution plan
Live-AbfragestatistikLive Query Statistics