sys.dm_exec_function_stats (Transact-SQL)

Si applica a: sìSQL Server 2016 (13.x) e versioni successive Sìdatabase SQL di Azure SìIstanza gestita di SQL di Azure

Restituisce statistiche sulle prestazioni aggregate per le funzioni memorizzate nella cache. La vista restituisce una riga per ogni piano di funzione memorizzato nella cache e la durata della riga è fino a quando la funzione rimane memorizzata nella cache. Quando una funzione viene rimossa dalla cache, la riga corrispondente viene eliminata da questa vista. A questo punto, viene generato un evento di traccia SQL di Performance Statistics simile a sys.dm_exec_query_stats. Restituisce informazioni sulle funzioni scalari, incluse le funzioni in memoria e le funzioni scalari CLR. Non restituisce informazioni sulle funzioni con valori di tabella e sulle funzioni scalari inline con l'inlining della funzione definita dall'utente scalare.

In database SQL di Azure, le viste a gestione dinamica non possono esporre le informazioni che influenzerebbero l'indipendenza del database o le informazioni sugli altri database a cui l'utente dispone di accesso. Per evitare di esporre queste informazioni, ogni riga che contiene dati che non appartengono al tenant connesso viene filtrata.

Nota

I risultati delle sys.dm_exec_function_stats possono variare a seconda dell'esecuzione, in quanto i dati riflettono solo le query completate e non quelle ancora in esecuzione.

Nome colonna Tipo di dati Descrizione
database_id int ID database in cui si trova la funzione.
object_id int Numero di identificazione dell'oggetto della funzione.
type char(2) Tipo di oggetto: FN = Funzioni con valori scalari
type_desc nvarchar(60) Descrizione del tipo di oggetto: SQL_SCALAR_FUNCTION
sql_handle varbinary(64) Può essere usato per correlare le query in sys.dm_exec_query_stats eseguite dall'interno di questa funzione.
plan_handle varbinary(64) Identificatore del piano in memoria. Si tratta di un identificatore temporaneo, che rimane costante solo se il piano rimane nella cache. Questo valore può essere usato con la sys.dm_exec_cached_plans a gestione dinamica.

Verrà sempre 0x000 quando una funzione compilata in modo nativo esegue una query su una tabella ottimizzata per la memoria.
cached_time datetime Ora in cui la funzione è stata aggiunta alla cache.
last_execution_time datetime Ora dell'ultima esecuzione della funzione.
execution_count bigint Numero di volte in cui la funzione è stata eseguita dopo l'ultima compilazione.
total_worker_time bigint Quantità totale di tempo CPU, in microsecondi, utilizzata dalle esecuzioni di questa funzione dopo la compilazione.

Per le funzioni compilate in modo nativo, total_worker_time potrebbe non essere accurato se molte esecuzioni hanno un tempo inferiore a 1 millisecondo.
last_worker_time bigint Tempo cpu, in microsecondi, utilizzato l'ultima volta che è stata eseguita la funzione. 1
min_worker_time bigint Tempo cpu minimo, in microsecondi, utilizzato da questa funzione durante una singola esecuzione. 1
max_worker_time bigint Tempo cpu massimo, in microsecondi, utilizzato da questa funzione durante una singola esecuzione. 1
total_physical_reads bigint Numero totale di operazioni di lettura fisiche eseguite dalle esecuzioni di questa funzione dopo la compilazione.

È sempre 0 con esecuzione di query su una tabella ottimizzata per la memoria.
last_physical_reads bigint Numero di operazioni di lettura fisiche eseguite l'ultima volta che è stata eseguita la funzione.

È sempre 0 con esecuzione di query su una tabella ottimizzata per la memoria.
min_physical_reads bigint Numero minimo di operazioni di lettura fisiche eseguite da questa funzione durante una singola esecuzione.

È sempre 0 con esecuzione di query su una tabella ottimizzata per la memoria.
max_physical_reads bigint Numero massimo di operazioni di lettura fisiche eseguite da questa funzione durante una singola esecuzione.

È sempre 0 con esecuzione di query su una tabella ottimizzata per la memoria.
total_logical_writes bigint Numero totale di scritture logiche eseguite dalle esecuzioni di questa funzione dopo la compilazione.

È sempre 0 con esecuzione di query su una tabella ottimizzata per la memoria.
last_logical_writes bigint Numero del numero di pagine del pool di buffer diventate dirty durante l'ultima esecuzione del piano. Se una pagina è già dirty (modificata) le scritture non vengono conteggiate.

È sempre 0 con esecuzione di query su una tabella ottimizzata per la memoria.
min_logical_writes bigint Numero minimo di scritture logiche eseguite da questa funzione durante una singola esecuzione.

È sempre 0 con esecuzione di query su una tabella ottimizzata per la memoria.
max_logical_writes bigint Numero massimo di scritture logiche eseguite da questa funzione durante una singola esecuzione.

È sempre 0 con esecuzione di query su una tabella ottimizzata per la memoria.
total_logical_reads bigint Numero totale di operazioni di lettura logiche eseguite dalle esecuzioni di questa funzione dopo la compilazione.

È sempre 0 con esecuzione di query su una tabella ottimizzata per la memoria.
last_logical_reads bigint Numero di operazioni di lettura logiche eseguite l'ultima volta che è stata eseguita la funzione.

È sempre 0 con esecuzione di query su una tabella ottimizzata per la memoria.
min_logical_reads bigint Numero minimo di operazioni di lettura logiche eseguite da questa funzione durante una singola esecuzione.

È sempre 0 con esecuzione di query su una tabella ottimizzata per la memoria.
max_logical_reads bigint Numero massimo di operazioni di lettura logiche eseguite da questa funzione durante una singola esecuzione.

È sempre 0 con esecuzione di query su una tabella ottimizzata per la memoria.
total_elapsed_time bigint Tempo totale trascorso, in microsecondi, per le esecuzioni completate di questa funzione.
last_elapsed_time bigint Tempo trascorso, in microsecondi, per l'ultima esecuzione completata di questa funzione.
min_elapsed_time bigint Tempo minimo trascorso, in microsecondi, per qualsiasi esecuzione completata di questa funzione.
max_elapsed_time bigint Tempo massimo trascorso, in microsecondi, per qualsiasi esecuzione completata di questa funzione.
total_page_server_reads bigint Numero totale di operazioni di lettura del server di pagine eseguite dalle esecuzioni di questa funzione dopo la compilazione.

Si applica a: database SQL di Azure Hyperscale.
last_page_server_reads bigint Numero di operazioni di lettura del server di pagine eseguite l'ultima volta che è stata eseguita la funzione.

Si applica a: database SQL di Azure Hyperscale.
min_page_server_reads bigint Numero minimo di operazioni di lettura del server di pagine eseguite da questa funzione durante una singola esecuzione.

Si applica a: database SQL di Azure Hyperscale.
max_page_server_reads bigint Numero massimo di operazioni di lettura del server di pagine eseguite da questa funzione durante una singola esecuzione.

Si applica a: database SQL di Azure Hyperscale.

Autorizzazioni

In SQL Server e in SQL Istanza gestita richiede l'autorizzazione VIEW SERVER STATE .

Negli database SQL di servizio Basic, S0 e S1 e per i database nei pool elastici è necessario l'account amministratore del server, l'account ##MS_ServerStateReader## amministratore di Azure Active Directory o l'appartenenza al ruolo del server. In tutti gli database SQL obiettivi di servizio è necessaria l'autorizzazione VIEW DATABASE STATE per il database o l'appartenenza al ##MS_ServerStateReader## ruolo del server.

Esempio

Nell'esempio seguente vengono restituite informazioni sulle prime dieci funzioni identificate dal tempo trascorso medio.

SELECT TOP 10 d.object_id, d.database_id, OBJECT_NAME(object_id, database_id) 'function name',   
    d.cached_time, d.last_execution_time, d.total_elapsed_time,  
    d.total_elapsed_time/d.execution_count AS [avg_elapsed_time],  
    d.last_elapsed_time, d.execution_count  
FROM sys.dm_exec_function_stats AS d  
ORDER BY [total_worker_time] DESC;  

Vedere anche

Funzioni e viste a gestione dinamica correlate all'esecuzione (Transact-SQL)
sys.dm_exec_sql_text (Transact-SQL)
sys.dm_exec_query_stats (Transact-SQL)

sys.dm_exec_trigger_stats (Transact-SQL)
sys.dm_exec_procedure_stats (Transact-SQL)