sys.dm_exec_function_stats (Transact-SQL)

Si applica a: SQL Server 2016 (13.x) e versioni successive Database SQL di Azure Istanza gestita di SQL di Azure

Restituisce dati statistici aggregati sulle prestazioni delle funzionalità memorizzate nella cache. La vista restituisce una riga per ogni piano di funzione memorizzato nella cache e la durata della riga è uguale al periodo in cui la funzione rimane memorizzata nella cache. Quando una funzione viene rimossa dalla cache, le righe corrispondenti vengono eliminate dalla vista. In quel momento, viene generato un evento di Analisi SQL delle statistiche delle prestazioni 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 incorporate con Scalar UDF Inlining.

Nel 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 contenente dati che non appartengono al tenant connesso viene filtrata.

Nota

I risultati di sys.dm_exec_function_stats possono variare con ogni esecuzione, perché i dati riflettono solo le query completate e non quelle ancora in esecuzione.

Nome colonna Tipo di dati Descrizione
database_id int ID del database in cui è contenuta la funzione.

In database SQL di Azure i valori sono univoci all'interno di un database singolo o di un pool elastico, ma non all'interno di un server logico.
object_id int Numero di identificazione dell'oggetto della funzione.
type char(2) Tipo dell'oggetto: FN = Funzioni a valori scalari
type_desc nvarchar(60) Descrizione del tipo di oggetto: SQL_SCALAR_FUNCTION
sql_handle varbinary(64) Può essere usato per correlare con 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 visualizzazione a gestione dinamica (DMV).

È sempre 0x000 quando una funzione compilata in modo nativo esegue una query su una tabella ottimizzata per la memoria.
cached_time datetime Orario in cui la funzione è stata aggiunta alla cache.
last_execution_time datetime Orario dell'ultima esecuzione della funzione.
execution_count bigint Numero di esecuzioni della funzione a partire dall'ultima compilazione.
total_worker_time bigint Quantità totale di tempo CPU, in microsecondi, consumata dalle esecuzioni di questa funzione da quando è stata compilata.

Per le funzioni compilate in modo nativo, il valore di total_worker_time non può essere accurato se più esecuzioni richiedono meno di 1 millisecondo.
last_worker_time bigint Tempo di CPU, in microsecondi, utilizzato durante l'ultima esecuzione della funzione. 1
min_worker_time bigint Tempo minimo CPU, in microsecondi, che questa funzione ha mai utilizzato durante una singola esecuzione. 1
max_worker_time bigint Tempo massimo CPU, in microsecondi, che questa funzione ha mai utilizzato durante una singola esecuzione. 1
total_physical_reads bigint Numero totale di letture fisiche effettuate dalle esecuzioni della funzione a partire dalla relativa compilazione.

È sempre 0 con esecuzione di query su una tabella ottimizzata per la memoria.
last_physical_reads bigint Numero di letture fisiche eseguite durante l'ultima esecuzione della funzione.

È sempre 0 con esecuzione di query su una tabella ottimizzata per la memoria.
min_physical_reads bigint Numero minimo di letture fisiche effettuate dalla 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 letture fisiche effettuate dalla 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 effettuate dalle esecuzioni della funzione a partire dalla relativa 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 effettuate dalla 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 effettuate dalla 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 letture logiche effettuate dalle esecuzioni della funzione a partire dalla sua compilazione.

È sempre 0 con esecuzione di query su una tabella ottimizzata per la memoria.
last_logical_reads bigint Numero di letture logiche effettuate durante l'ultima esecuzione della funzione.

È sempre 0 con esecuzione di query su una tabella ottimizzata per la memoria.
min_logical_reads bigint Numero minimo di letture logiche effettuate dalla 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 letture logiche effettuate dalla funzione durante una singola esecuzione.

È sempre 0 con esecuzione di query su una tabella ottimizzata per la memoria.
total_elapsed_time bigint Tempo trascorso totale, in microsecondi, per le esecuzioni completate di questa funzione.
last_elapsed_time bigint Tempo trascorso, in microsecondi, per l'ultima esecuzione completata della funzione.
min_elapsed_time bigint Tempo trascorso minimo, in microsecondi, per le esecuzioni completate di questa funzione.
max_elapsed_time bigint Tempo trascorso massimo, in microsecondi, per le esecuzioni completate di questa funzione.
total_page_server_reads bigint Numero totale di letture del server di pagina eseguite dalle esecuzioni di questa funzione da quando è stata compilata.

Si applica a: Hyperscale database SQL di Azure.
last_page_server_reads bigint Numero di letture del server di pagina effettuate durante l'ultima esecuzione della funzione.

Si applica a: Hyperscale database SQL di Azure.
min_page_server_reads bigint Numero minimo di letture del server di pagina effettuate dalla funzione durante una singola esecuzione.

Si applica a: Hyperscale database SQL di Azure.
max_page_server_reads bigint Numero massimo di letture del server di pagina effettuate dalla funzione durante una singola esecuzione.

Si applica a: Hyperscale database SQL di Azure.

Autorizzazioni

In SQL Server e Istanza gestita di SQL è richiesta l'autorizzazione VIEW SERVER STATE.

Negli obiettivi del servizio Basic del Database SQL, S0 e S1 e per i database nei pool elastici, è richiesto l'account amministratore del server, l'account amministratore di Microsoft Entra o l’adesione nel ##MS_ServerStateReader## al ruolo del server. Per tutti gli altri obiettivi di servizio database SQL, è necessaria l'autorizzazione VIEW DATABASE STATE per il database o l'adesione ruolo del server ##MS_ServerStateReader##.

Autorizzazioni per SQL Server 2022 e versioni successive

È richiesta l'autorizzazione VIEW SERVER PERFORMANCE STATE per il server.

Esempi

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

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;  

Vedi anche

Funzioni e viste a gestione dinamica relative 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)