Considerações sobre como escrever uma função de classificação

O Administrador de Recursos oferece suporte a funções definidas pelo usuário cujos valores de retorno são usados para classificar sessões que, em seguida, são roteadas ao grupo de carga de trabalho adequado.

A função de classificação definida pelo usuário deve ser testada e otimizada antes do uso para classificar solicitações de entrada. Uma função escrita de maneira inadequada pode tornar o sistema inutilizável por exceder o tempo limite, o que, por sua vez, pode expor informações de configuração. Você pode usar uma conexão de administrador dedicada (DAC) para solucionar problemas de uma função de classificação escrita inadequadamente por que uma DAC não está sujeita à classificação e pode ser usada enquanto o Administrador de Recursos está executando e classificando sessões de entrada. Para obter mais informações, consulte Usando uma conexão de administrador dedicada [SQL Server].

ObservaçãoObservação

Se uma DAC não estiver disponível para solução de problemas, você pode reiniciar o sistema em modo de usuário único. Embora o modo de usuário único não esteja sujeito à classificação, você não pode diagnosticar a classificação do Administrador de Recursos enquanto ele está em execução.

É possível usar funções do sistema existentes em suas funções de classificação e usar os valores retornados por essas funções para classificar sessões.

Funções

As seguintes funções do sistema podem ser usadas para classificação: HOST_NAME(), APP_NAME(), SUSER_NAME(), SUSER_SNAME(), IS_SRVROLEMEMBER() e IS_MEMBER().

Observação sobre cuidadosCuidado

Ao criar uma função que retorna uma propriedade que é usada para classificação, você deve considerar se a propriedade é segura ou não. Caso contrário, avalie o risco do uso do atributo. As funções HOST_NAME() e APP_NAME() retornam propriedades que não são seguras. Por exemplo, APP_NAME() pode retornar qualquer valor que seja fornecido em uma cadeia de conexão de aplicativo.

A função LOGINPROPERTY foi atualizada com duas propriedades que podem ser usadas para classificação: DefaultDatabase e DefaultLanguage. Além disso, você pode usar a função ORIGINAL_DB_NAME para obter o nome do banco de dados especificado na cadeia de conexão de usuário.

O Administrador de Recursos também implementa a função CONNECTIONPROPERTY para fornecer propriedades adicionais que podem ser usadas para classificação. Essa função retorna os mesmos valores das propriedades para a conexão exclusiva que uma solicitação originou como as colunas correspondentes na exibição de gerenciamento dinâmico sys.dm_exec_connections.