Performance Statistics - classe di eventoPerformance Statistics Event Class

La classe di evento Performance Statistics consente di eseguire il monitoraggio delle prestazioni di query, stored prcoedure e trigger in esecuzione.The Performance Statistics event class can be used to monitor the performance of queries, stored procedures, and triggers that are executing. Ciascuna delle sei sottoclassi di evento indica un evento generato nel corso di query, stored procedure e trigger all'interno del sistema.Each of the six event subclasses indicates an event in the lifetime of queries, stored procedures, and triggers within the system. L'utilizzo di tali sottoclassi di evento in combinazione con le viste a gestione dinamica sys.dm_exec_query_stats, sys.dm_exec_procedure_stats e sys.dm_exec_trigger_stats associate consente di ricostituire la cronologia delle prestazioni di qualsiasi query, stored procedure o trigger specifico.Using the combination of these event subclasses and the associated sys.dm_exec_query_stats, sys.dm_exec_procedure_stats and sys.dm_exec_trigger_stats dynamic management views, you can reconstitute the performance history of any given query, stored procedure, or trigger.

Colonne di dati della classe di evento Performance StatisticsPerformance Statistics Event Class Data Columns

Nelle tabelle seguenti sono descritte le colonne di dati della classe di evento associate a ciascuna delle sottoclassi di evento EventSubClass 0, EventSubClass 1, EventSubClass 2, EventSubClass 3, EventSubClass 4 ed EventSubClass 5.The following tables describe the event class data columns associated with each of the following event subclasses: EventSubClass 0, EventSubClass 1,EventSubClass 2,EventSubClass 3, EventSubClass 4, and EventSubClass 5.

EventSubClass 0EventSubClass 0

Nome colonna di datiData column name Tipo di datiData type DescrizioneDescription ID colonnaColumn ID FiltrabileFilterable
BigintData1BigintData1 bigintbigint NULLNULL 5252 Yes
BinaryDataBinaryData imageimage NULLNULL 22 Yes
DatabaseIDDatabaseID intint ID del database specificato nell'istruzione di database USE oppure il database predefinito se per un'istanza specifica l'istruzione di database USE non è stata eseguita.ID of the database specified by the USE database statement or the default database if no USE database statement has been issued for a given instance. SQL Server ProfilerSQL Server Profiler visualizza il nome del database se la colonna di dati ServerName è acquisita nella traccia e il server è disponibile. displays the name of the database if the ServerName data column is captured in the trace and the server is available. Determinare il valore per un database utilizzando la funzione DB_ID.Determine the value for a database by using the DB_ID function. 33 Yes
EventSequenceEventSequence intint Sequenza di un determinato evento all'interno della richiesta.Sequence of a given event within the request. 5151 NoNo
EventSubClassEventSubClass intint Tipo di sottoclasse di evento.Type of event subclass.

0 = Nuovo testo SQL del batch non presente nella cache.0 = New batch SQL text that is not currently present in the cache.

Di seguito sono elencati i tipi di sottoclasse EventSubClass generati nella traccia per batch ad hoc.The following EventSubClass types are generated in the trace for ad hoc batches.

Batch ad hoc con n query, dove n rappresenta un numero:For ad hoc batches with n number of queries:

1 di tipo 01 of type 0
2121 Yes
IntegerData2IntegerData2 Intint NULLNULL 5555 Yes
ObjectIDObjectID Intint NULLNULL 2222 Yes
OffsetOffset Intint NULLNULL 6161 Yes
PlanHandlePlanHandle ImageImage NULLNULL 6565 Yes
SessionLoginNameSessionLoginName nvarcharnvarchar Nome dell'account di accesso dell'utente che ha avviato la sessione.Login name of the user who originated the session. Se ad esempio si stabilisce la connessione a SQL ServerSQL Server con l'account di accesso Login1 e si esegue un'istruzione con l'account di accesso Login2, SessionLoginName indica Login1 e LoginName indica Login2.For example, if you connect to SQL ServerSQL Server using Login1 and execute a statement as Login2, SessionLoginName shows Login1 and LoginName shows Login2. In questa colonna sono visualizzati sia gli account di accesso di SQL ServerSQL Server che quelli di Windows.This column displays both SQL ServerSQL Server and Windows logins. 6464 Yes
SPIDSPID intint ID della sessione in cui si è verificato l'evento.ID of the session on which the event occurred. 1212 Yes
SqlHandleSqlHandle imageimage Handle SQL utilizzabile per ottenere il testo SQL del batch tramite la vista a gestione dinamica sys.dm_exec_sql_text.SQL handle that can be used to obtain the batch SQL text using the sys.dm_exec_sql_text dynamic management view. 6363 Yes
StartTimeStartTime datetimedatetime Ora di inizio dell'evento, se disponibile.Time at which the event started, if available. 1414 Yes
TextDataTextData ntextntext Testo SQL del batch.SQL text of the batch. 11 Yes

EventSubClass 1EventSubClass 1

Nome colonna di datiData column name Tipo di datiData type DescrizioneDescription ID colonnaColumn ID FiltrabileFilterable
BigintData1BigintData1 bigintbigint Numero cumulativo di ricompilazioni del piano.The cumulative number of times this plan has been recompiled. 5252 Yes
BinaryDataBinaryData imageimage XML binario del piano compilato.The binary XML of the compiled plan. 22 Yes
DatabaseIDDatabaseID intint ID del database specificato nell'istruzione di database USE oppure il database predefinito se per un'istanza specifica l'istruzione di database USE non è stata eseguita.ID of the database specified by the USE database statement or the default database if no USE database statement has been issued for a given instance. SQL Server ProfilerSQL Server Profiler visualizza il nome del database se la colonna di dati ServerName è acquisita nella traccia e il server è disponibile. displays the name of the database if the ServerName data column is captured in the trace and the server is available. Determinare il valore per un database utilizzando la funzione DB_ID.Determine the value for a database by using the DB_ID function. 33 Yes
EventSequenceEventSequence intint Sequenza di un determinato evento all'interno della richiesta.Sequence of a given event within the request. 5151 NoNo
SessionLoginNameSessionLoginName nvarcharnvarchar Nome dell'account di accesso dell'utente che ha avviato la sessione.Login name of the user who originated the session. Se ad esempio si stabilisce la connessione a SQL ServerSQL Server con l'account di accesso Login1 e si esegue un'istruzione con l'account di accesso Login2, SessionLoginName indica Login1 e LoginName indica Login2.For example, if you connect to SQL ServerSQL Server using Login1 and execute a statement as Login2, SessionLoginName shows Login1 and LoginName shows Login2. In questa colonna sono visualizzati sia gli account di accesso di SQL ServerSQL Server che quelli di Windows.This column displays both SQL ServerSQL Server and Windows logins. 6464 Yes
EventSubClassEventSubClass intint Tipo di sottoclasse di evento.Type of event subclass.

1 = Le query incluse in una stored procedure sono state compilate.1 = Queries within a stored procedure have been compiled.

Di seguito sono elencati i tipi di sottoclasse EventSubClass generati nella traccia per stored procedure.The following EventSubClass types are generated in the trace for stored procedures.

Stored procedure con n query, dove n rappresenta un numero:For stored procedures with n number of queries:

Numeron di tipo 1n number of type 1
2121 Yes
IntegerData2IntegerData2 Intint Fine dell'istruzione nella stored procedure.End of the statement within the stored procedure.

-1 per la fine della stored procedure.-1 for the end of the stored procedure.
5555 Yes
ObjectIDObjectID intint ID dell'oggetto assegnato dal sistema.System-assigned ID of the object. 2222 Yes
OffsetOffset Intint Offset iniziale dell'istruzione nella stored procedure o nel batch.Starting offset of the statement within the stored procedure or batch. 6161 Yes
SPIDSPID intint ID della sessione in cui si è verificato l'evento.ID of the session on which the event occurred. 1212 Yes
SqlHandleSqlHandle imageimage Handle SQL utilizzabile per ottenere il testo SQL della stored procedure tramite la vista a gestione dinamica dm_exec_sql_text.SQL handle that can be used to obtain the SQL text of the stored procedure using the dm_exec_sql_text dynamic management view. 6363 Yes
StartTimeStartTime datetimedatetime Ora di inizio dell'evento, se disponibile.Time at which the event started, if available. 1414 Yes
TextDataTextData ntextntext NULLNULL 11 Yes
PlanHandlePlanHandle imageimage Handle del piano compilato per la stored procedure.The plan handle of the compiled plan for the stored procedure. Utilizzabile per ottenere il piano XML tramite la vista a gestione dinamica sys.dm_exec_query_plan.This can be used to obtain the XML plan by using the sys.dm_exec_query_plan dynamic management view. 6565 Yes
ObjectTypeObjectType Intint Valore che rappresenta il tipo di oggetto coinvolto nell'evento.A value that represents the type of object involved in the event.

8272 = stored procedure8272 = stored procedure
2828 Yes
BigintData2BigintData2 bigintbigint Quantità di memoria totale, espressa in kilobyte, utilizzata durante la compilazione.Total memory, in kilobytes, used during compilation. 5353 Yes
CPUCPU Intint Tempo totale di CPU, espresso in millisecondi, dedicato alla compilazione.Total CPU time, in milliseconds, spent during compilation. 1818 Yes
DurataDuration Intint Tempo totale, espresso in microsecondi, dedicato alla compilazione.Total time, in microseconds, spent during compilation. 1313 Yes
IntegerDataIntegerData Intint Dimensioni, espresse in kilobyte, del piano compilato.The size, in kilobytes, of the compiled plan. 2525 Yes

EventSubClass 2EventSubClass 2

Nome colonna di datiData column name Tipo di datiData type DescrizioneDescription ID colonnaColumn ID FiltrabileFilterable
BigintData1BigintData1 bigintbigint Numero cumulativo di ricompilazioni del piano.The cumulative number of times this plan has been recompiled. 5252 Yes
BinaryDataBinaryData imageimage XML binario del piano compilato.The binary XML of the compiled plan. 22 Yes
DatabaseIDDatabaseID intint ID del database specificato nell'istruzione di database USE oppure il database predefinito se per un'istanza specifica l'istruzione di database USE non è stata eseguita.ID of the database specified by the USE database statement or the default database if no USE database statement has been issued for a given instance. SQL Server ProfilerSQL Server Profiler visualizza il nome del database se la colonna di dati ServerName è acquisita nella traccia e il server è disponibile. displays the name of the database if the ServerName data column is captured in the trace and the server is available. Determinare il valore per un database utilizzando la funzione DB_ID.Determine the value for a database by using the DB_ID function. 33 Yes
EventSequenceEventSequence intint Sequenza di un determinato evento all'interno della richiesta.Sequence of a given event within the request. 5151 NoNo
SessionLoginNameSessionLoginName nvarcharnvarchar Nome dell'account di accesso dell'utente che ha avviato la sessione.Login name of the user who originated the session. Se ad esempio si stabilisce la connessione a SQL ServerSQL Server con l'account di accesso Login1 e si esegue un'istruzione con l'account di accesso Login2, SessionLoginName indica Login1 e LoginName indica Login2.For example, if you connect to SQL ServerSQL Server using Login1 and execute a statement as Login2, SessionLoginName shows Login1 and LoginName shows Login2. In questa colonna sono visualizzati sia gli account di accesso di SQL ServerSQL Server che quelli di Windows.This column displays both SQL ServerSQL Server and Windows logins. 6464 Yes
EventSubClassEventSubClass intint Tipo di sottoclasse di evento.Type of event subclass.

2 = Le query incluse in un'istruzione SQL ad hoc sono state compilate.2 = Queries within an ad hoc SQL statement have been compiled.

Di seguito sono elencati i tipi di sottoclasse EventSubClass generati nella traccia per batch ad hoc.The following EventSubClass types are generated in the trace for ad hoc batches.

Batch ad hoc con n query, dove n rappresenta un numero:For ad hoc batches with n number of queries:

Numeron di tipo 2n number of type 2
2121 Yes
IntegerData2IntegerData2 Intint Fine dell'istruzione nel batch.End of the statement within the batch.

-1 per la fine del batch.-1 for the end of the batch.
5555 Yes
ObjectIDObjectID Intint N/DN/A 2222 Yes
OffsetOffset Intint Offset iniziale dell'istruzione nel batch.Starting offset of the statement within the batch.

0 per l'inizio del batch.0 for the beginning of the batch.
6161 Yes
SPIDSPID intint ID della sessione in cui si è verificato l'evento.ID of the session on which the event occurred. 1212 Yes
SqlHandleSqlHandle imageimage Handle SQL.SQL handle. Utilizzabile per ottenere il testo SQL del batch tramite la vista a gestione dinamica dm_exec_sql_text.This can be used to obtain the batch SQL text using the dm_exec_sql_text dynamic management view. 6363 Yes
StartTimeStartTime datetimedatetime Ora di inizio dell'evento, se disponibile.Time at which the event started, if available. 1414 Yes
TextDataTextData ntextntext NULLNULL 11 Yes
PlanHandlePlanHandle imageimage Handle del piano compilato per il batch.The plan handle of the compiled plan for the batch. Utilizzabile per ottenere il piano XML del batch tramite la vista a gestione dinamica dm_exec_query_plan.This can be used to obtain the batch XML plan using the dm_exec_query_plan dynamic management view. 6565 Yes
BigintData2BigintData2 bigintbigint Quantità di memoria totale, espressa in kilobyte, utilizzata durante la compilazione.Total memory, in kilobytes, used during compilation. 5353 Yes
CPUCPU Intint Tempo totale di CPU, espresso in microsecondi, dedicato alla compilazione.Total CPU time, in microseconds, spent during compilation. 1818 Yes
DurataDuration Intint Tempo totale, espresso in millisecondi, dedicato alla compilazione.Total time, in milliseconds, spent during compilation. 1313 Yes
IntegerDataIntegerData Intint Dimensioni, espresse in kilobyte, del piano compilato.The size, in kilobytes, of the compiled plan. 2525 Yes

EventSubClass 3EventSubClass 3

Nome colonna di datiData column name Tipo di datiData type DescrizioneDescription ID colonnaColumn ID FiltrabileFilterable
BigintData1BigintData1 bigintbigint Numero cumulativo di ricompilazioni del piano.The cumulative number of times this plan has been recompiled. 5252 Yes
BinaryDataBinaryData imageimage NULLNULL 22 Yes
DatabaseIDDatabaseID intint ID del database specificato nell'istruzione di database USE oppure il database predefinito se per un'istanza specifica l'istruzione di database USE non è stata eseguita.ID of the database specified by the USE database statement or the default database if no USE database statement has been issued for a given instance. SQL Server ProfilerSQL Server Profiler visualizza il nome del database se la colonna di dati ServerName è acquisita nella traccia e il server è disponibile. displays the name of the database if the ServerName data column is captured in the trace and the server is available. Determinare il valore per un database utilizzando la funzione DB_ID.Determine the value for a database by using the DB_ID function. 33 Yes
EventSequenceEventSequence intint Sequenza di un determinato evento all'interno della richiesta.Sequence of a given event within the request. 5151 NoNo
SessionLoginNameSessionLoginName nvarcharnvarchar Nome dell'account di accesso dell'utente che ha avviato la sessione.Login name of the user who originated the session. Se ad esempio si stabilisce la connessione a SQL ServerSQL Server con l'account di accesso Login1 e si esegue un'istruzione con l'account di accesso Login2, SessionLoginName indica Login1 e LoginName indica Login2.For example, if you connect to SQL ServerSQL Server using Login1 and execute a statement as Login2, SessionLoginName shows Login1 and LoginName shows Login2. In questa colonna sono visualizzati sia gli account di accesso di SQL ServerSQL Server che quelli di Windows.This column displays both SQL ServerSQL Server and Windows logins. 6464 Yes
EventSubClassEventSubClass intint Tipo di sottoclasse di evento.Type of event subclass.

3 = Una query memorizzata nella cache è stata distrutta e anche i dati relativi alla cronologia delle prestazioni associati al piano stanno per essere distrutti.3 = A cached query has been destroyed and the historical performance data associated with the plan is about to be destroyed.

Di seguito sono elencati i tipi di sottoclasse EventSubClass generati nella traccia.The following EventSubClass types are generated in the trace.

Batch ad hoc con n query, dove n rappresenta un numero:For ad hoc batches with n number of queries:

1 di tipo 3 quando la query viene scaricata dalla cache1 of type 3 when the query is flushed from the cache

Stored procedure con n query, dove n rappresenta un numero:For stored procedures with n number of queries:

1 di tipo 3 quando la query viene scaricata dalla cache.1 of type 3 when the query is flushed from the cache.
2121 Yes
IntegerData2IntegerData2 Intint Fine dell'istruzione nella stored procedure o nel batch.End of the statement within the stored procedure or batch.

-1 per la fine della stored procedure o del batch.-1 for the end of the stored procedure or batch.
5555 Yes
ObjectIDObjectID Intint NULLNULL 2222 Yes
OffsetOffset Intint Offset iniziale dell'istruzione nella stored procedure o nel batch.Starting offset of the statement within the stored procedure or batch.

0 per l'inizio della stored procedure o del batch.0 for the beginning of the stored procedure or batch.
6161 Yes
SPIDSPID intint ID della sessione in cui si è verificato l'evento.ID of the session on which the event occurred. 1212 Yes
SqlHandleSqlHandle imageimage Handle SQL utilizzabile per ottenere il testo SQL della stored procedure o del batch tramite la vista a gestione dinamica dm_exec_sql_text.SQL handle that can be used to obtain the stored procedure or batch SQL text using the dm_exec_sql_text dynamic management view. 6363 Yes
StartTimeStartTime datetimedatetime Ora di inizio dell'evento, se disponibile.Time at which the event started, if available. 1414 Yes
TextDataTextData ntextntext QueryExecutionStatsQueryExecutionStats 11 Yes
PlanHandlePlanHandle imageimage Handle del piano compilato per la stored procedure o il batch.The plan handle of the compiled plan for the stored procedure or batch. Utilizzabile per ottenere il piano XML tramite la vista a gestione dinamica dm_exec_query_plan.This can be used to obtain the XML plan using the dm_exec_query_plan dynamic management view. 6565 Yes
GroupIDGroupID intint ID del gruppo del carico di lavoro in cui viene generato l'evento di Traccia SQL.ID of the workload group where the SQL Trace event fires. 6666 Yes

EventSubClass 4EventSubClass 4

Nome colonna di datiData column name Tipo di datiData type DescrizioneDescription ID colonnaColumn ID FiltrabileFilterable
BigintData1BigintData1 bigintbigint NULLNULL 5252 Yes
BinaryDataBinaryData imageimage NULLNULL 22 Yes
DatabaseIDDatabaseID Intint ID del database in cui è contenuta la stored procedure specifica.ID of the database in which the given stored procedure resides. 33 Yes
EventSequenceEventSequence intint Sequenza di un determinato evento all'interno della richiesta.Sequence of a given event within the request. 5151 NoNo
SessionLoginNameSessionLoginName nvarcharnvarchar Nome dell'account di accesso dell'utente che ha avviato la sessione.Login name of the user who originated the session. Se ad esempio si stabilisce la connessione a SQL ServerSQL Server con l'account di accesso Login1 e si esegue un'istruzione con l'account di accesso Login2, SessionLoginName indica Login1 e LoginName indica Login2.For example, if you connect to SQL ServerSQL Server using Login1 and execute a statement as Login2, SessionLoginName shows Login1 and LoginName shows Login2. In questa colonna sono visualizzati sia gli account di accesso di SQL ServerSQL Server che quelli di Windows.This column displays both SQL ServerSQL Server and Windows logins. 6464 Yes
EventSubClassEventSubClass intint Tipo di sottoclasse di evento.Type of event subclass.

4 = Una stored procedure memorizzata nella cache è stata rimossa dalla cache e i dati relativi alla cronologia delle prestazioni associati verranno distrutti.4 = A cached stored procedure has been removed from the cache and the historical performance data associated with it is about to be destroyed.
2121 Yes
IntegerData2IntegerData2 Intint NULLNULL 5555 Yes
ObjectIDObjectID Intint ID della stored procedure.ID of the stored procedure. Tale nome è lo stesso di quello della colonna object_id in sys.procedures.This is same as the object_id column in sys.procedures. 2222 Yes
OffsetOffset Intint NULLNULL 6161 Yes
SPIDSPID intint ID della sessione in cui si è verificato l'evento.ID of the session on which the event occurred. 1212 Yes
SqlHandleSqlHandle imageimage Handle SQL utilizzabile per ottenere il testo SQL della stored procedure eseguita tramite la vista a gestione dinamica dm_exec_sql_text.SQL handle that can be used to obtain the stored procedure SQL text that was executed using the dm_exec_sql_text dynamic management view. 6363 Yes
StartTimeStartTime datetimedatetime Ora di inizio dell'evento, se disponibile.Time at which the event started, if available. 1414 Yes
TextDataTextData ntextntext ProcedureExecutionStatsProcedureExecutionStats 11 Yes
PlanHandlePlanHandle imageimage Handle del piano compilato per la stored procedure.The plan handle of the compiled plan for the stored procedure. Utilizzabile per ottenere il piano XML tramite la vista a gestione dinamica dm_exec_query_plan.This can be used to obtain the XML plan using the dm_exec_query_plan dynamic management view. 6565 Yes
GroupIDGroupID intint ID del gruppo del carico di lavoro in cui viene generato l'evento di Traccia SQL.ID of the workload group where the SQL Trace event fires. 6666 Yes

EventSubClass 5EventSubClass 5

Nome colonna di datiData column name Tipo di datiData type DescrizioneDescription ID colonnaColumn ID FiltrabileFilterable
BigintData1BigintData1 bigintbigint NULLNULL 5252 Yes
BinaryDataBinaryData imageimage NULLNULL 22 Yes
DatabaseIDDatabaseID Intint ID del database in cui è contenuto il trigger specifico.ID of the database in which the given trigger resides. 33 Yes
EventSequenceEventSequence intint Sequenza di un determinato evento all'interno della richiesta.Sequence of a given event within the request. 5151 NoNo
SessionLoginNameSessionLoginName nvarcharnvarchar Nome dell'account di accesso dell'utente che ha avviato la sessione.Login name of the user who originated the session. Se ad esempio si stabilisce la connessione a SQL ServerSQL Server con l'account di accesso Login1 e si esegue un'istruzione con l'account di accesso Login2, SessionLoginName indica Login1 e LoginName indica Login2.For example, if you connect to SQL ServerSQL Server using Login1 and execute a statement as Login2, SessionLoginName shows Login1 and LoginName shows Login2. In questa colonna sono visualizzati sia gli account di accesso di SQL ServerSQL Server che quelli di Windows.This column displays both SQL ServerSQL Server and Windows logins. 6464 Yes
EventSubClassEventSubClass intint Tipo di sottoclasse di evento.Type of event subclass.

5 = Un trigger memorizzato nella cache è stata rimosso dalla cache e i dati relativi alla cronologia delle prestazioni associati verranno distrutti.5 = A cached trigger has been removed from the cache and the historical performance data associated with it is about to be destroyed.
2121 Yes
IntegerData2IntegerData2 Intint NULLNULL 5555 Yes
ObjectIDObjectID Intint ID del trigger.ID of the trigger. Tale ID è lo stesso di quello della colonna object_id nelle viste del catalogo sys.triggers/sys.server_triggers.This is same as the object_id column in sys.triggers/sys.server_triggers catalog views. 2222 Yes
OffsetOffset Intint NULLNULL 6161 Yes
SPIDSPID intint ID della sessione in cui si è verificato l'evento.ID of the session on which the event occurred. 1212 Yes
SqlHandleSqlHandle imageimage Handle SQL utilizzabile per ottenere il testo SQL del trigger tramite la vista a gestione dinamica dm_exec_sql_text.SQL handle that can be used to obtain the trigger's SQL text using the dm_exec_sql_text dynamic management view. 6363 Yes
StartTimeStartTime datetimedatetime Ora di inizio dell'evento, se disponibile.Time at which the event started, if available. 1414 Yes
TextDataTextData ntextntext TriggerExecutionStatsTriggerExecutionStats 11 Yes
PlanHandlePlanHandle imageimage Handle del piano compilato per il trigger.The plan handle of the compiled plan for the trigger. Utilizzabile per ottenere il piano XML tramite la vista a gestione dinamica dm_exec_query_plan.This can be used to obtain the XML plan using the dm_exec_query_plan dynamic management view. 6565 Yes
GroupIDGroupID intint ID del gruppo del carico di lavoro in cui viene generato l'evento di Traccia SQL.ID of the workload group where the SQL Trace event fires. 6666 Yes

Vedere ancheSee Also

Eventi estesi Extended Events
sp_trace_setevent (Transact-SQL) sp_trace_setevent (Transact-SQL)
Classe di evento Showplan XML For Query Compile Showplan XML for Query Compile Event Class
Funzioni e viste a gestione dinamica (Transact-SQL) Dynamic Management Views and Functions (Transact-SQL)