Condividi tramite


Considerazioni per la scrittura di una funzione di classificazione

In Resource Governor sono supportate funzioni definite dall'utente i cui valori restituiti vengono utilizzati per classificare le sessioni in modo da indirizzarle al gruppo del carico di lavoro appropriato.

Prima di essere utilizzata per classificare le richieste in ingresso, la funzione di classificazione definita dall'utente deve essere testata e ottimizzata. Una funzione scritta in modo non corretto può rendere il sistema inutilizzabile provocando il timeout e la conseguente esposizione delle informazioni di configurazione. Per risolvere i problemi relativi a una funzione di classificazione scritta in modo non corretto, è possibile utilizzare una connessione amministrativa dedicata (DAC, Dedicated Administrator Connection) che non è soggetta alla classificazione e può essere utilizzata mentre Resource Governor è in esecuzione e classifica le sessioni in ingresso. Per ulteriori informazioni, vedere Utilizzo di una connessione amministrativa dedicata.

[!NOTA]

Se per la risoluzione dei problemi non è disponibile alcuna connessione amministrativa dedicata, è possibile riavviare il sistema in modalità utente singolo. Sebbene tale modalità non sia soggetta alla classificazione, non consente di eseguire la diagnosi della classificazione di Resource Governor mentre quest'ultimo è in esecuzione.

Nelle funzioni di classificazione è possibile utilizzare funzioni di sistema esistenti e utilizzare i valori che restituiscono per classificare le sessioni.

Funzioni

È possibile utilizzare le seguenti funzioni di sistema per la classificazione: HOST_NAME (), APP_NAME (), SUSER_NAME (), SUSER_SNAME (), IS_SRVROLEMEMBER () e IS_MEMBER ().

Nota di attenzioneAttenzione

Quando si crea una funzione che restituisce una proprietà utilizzata per la classificazione, è necessario valutare se la proprietà è sicura. In caso negativo, è necessario stimare il rischio correlato all'utilizzo dell'attributo. Le funzioni HOST_NAME () e APP_NAME () restituiscono proprietà non sicure. APP_NAME () ad esempio può restituire qualsiasi valore fornito in una stringa di connessione dell'applicazione.

La funzione LOGINPROPERTY è stata aggiornata con due proprietà che è possibile utilizzare per la classificazione: DefaultDatabase e DefaultLanguage. Inoltre, è possibile utilizzare la funzione ORIGINAL_DB_NAME per ottenere il nome del database specificato nella stringa di connessione dell'utente.

È anche implementata la funzione CONNECTIONPROPERTY per fornire proprietà aggiuntive che è possibile utilizzare per la classificazione. Questa funzione restituisce gli stessi valori per le proprietà della connessione univoca utilizzata da una richiesta delle colonne corrispondenti nella vista a gestione dinamica sys.dm_exec_connections.