Consideraciones para escribir una función clasificadora

El Regulador de recursos admite funciones definidas por el usuario cuyos valores devueltos se utilizan para clasificar las sesiones que se enrutan a continuación al grupo de cargas de trabajo adecuado.

Se debe probar y optimizar la función clasificadora definida por el usuario antes de usarla para clasificar las solicitudes entrantes. Una función mal escrita puede dejar inutilizable el sistema al agotar el tiempo de espera, lo que a su vez puede exponer la información de configuración. Puede utilizar una conexión de administrador dedicada (DAC) para solucionar los problemas de una función clasificadora mal escrita, porque una conexión de administrador dedicada no está sujeta a clasificación y se puede utilizar mientras el Regulador de recursos está ejecutándose y clasificando las sesiones entrantes. Para obtener más información, vea Usar una conexión de administrador dedicada.

[!NOTA]

Si no hay ninguna conexión de administrador dedicada disponible para solucionar problemas, puede reiniciar el sistema en modo de usuario único. Aunque el modo de usuario único no está sujeto a clasificación, no se puede diagnosticar la clasificación del Regulador de recursos mientras se ejecuta.

Puede utilizar las funciones del sistema existentes en las funciones clasificadoras y usar los valores que estas funciones devuelven para clasificar las sesiones.

Funciones

Las funciones del sistema siguientes se pueden utilizar para la clasificación: HOST_NAME(), APP_NAME(), SUSER_NAME(), SUSER_SNAME(), IS_SRVROLEMEMBER() e IS_MEMBER().

Nota de advertenciaAdvertencia

Cuando se crea una función que devuelve una propiedad que se utiliza para la clasificación, se debe considerar si la propiedad es o no segura. Si no lo es, se debe evaluar el riesgo que supone utilizar el atributo. Las funciones HOST_NAME() y APP_NAME() devuelven propiedades que no son seguras. Por ejemplo, APP_NAME() puede devolver cualquier valor que se proporcione en una cadena de conexión de la aplicación.

La función LOGINPROPERTY se ha actualizado con dos propiedades que pueden utilizarse para la clasificación: DefaultDatabase y DefaultLanguage. Además, puede utilizarse la función ORIGINAL_DB_NAME para obtener el nombre de la base de datos que se especifica en la cadena de conexión del usuario.

El regulador de recursos también implementa la función CONNECTIONPROPERTY para proporcionar propiedades adicionales que puede utilizar para la clasificación. Esta función devuelve los mismos valores para las propiedades para la conexión única en que llegó una solicitud que las columnas correspondientes en la vista de administración dinámica sys.dm_exec_connections.