Monitorar instruções T-SQL PREDICT com eventos estendidos nos Serviços de Machine Learning do SQL Server

Aplica-se a: SQL Server 2017 (14.x) e versões posteriores Instância Gerenciada de SQL do Azure

Saiba como usar eventos estendidos para monitorar e solucionar problemas de instruções T-SQL PREDICT nos Serviços de Machine Learning do SQL Server.

Tabela de eventos estendidos

Os seguintes eventos estendidos estão disponíveis em todas as versões do SQL Server compatíveis com a instrução T-SQL PREDICT.

name object_type descrição
predict_function_completed event Detalhamento do tempo de execução interno
predict_model_cache_hit event Ocorre quando um modelo é recuperado do cache de modelo da função PREDICT. Use esse evento junto com outros predict_model_cache_* para solucionar problemas causados pelo cache de modelo da função PREDICT.
predict_model_cache_insert event Ocorre quando um modelo é inserido no cache de modelo da função PREDICT. Use esse evento junto com outros predict_model_cache_* para solucionar problemas causados pelo cache de modelo da função PREDICT.
predict_model_cache_miss event Ocorre quando um modelo não é encontrado no cache de modelo da função PREDICT. Ocorrências frequentes desse evento podem indicar que o SQL Server precisa de mais memória. Use esse evento junto com outros predict_model_cache_* para solucionar problemas causados pelo cache de modelo da função PREDICT.
predict_model_cache_remove event Ocorre quando um modelo é removido do cache de modelo da função PREDICT. Use esse evento junto com outros predict_model_cache_* para solucionar problemas causados pelo cache de modelo da função PREDICT.

Para exibir uma lista de todas as colunas retornadas para esses eventos, execute a seguinte consulta no SQL Server Management Studio:

SELECT *
FROM sys.dm_xe_object_columns
WHERE object_name LIKE 'predict%'

Exemplos

Para capturar informações sobre o desempenho de uma sessão de pontuação usando PREDICT:

  1. Crie uma nova sessão de evento estendido usando o Management Studio ou outra ferramenta compatível.
  2. Adicione os eventos predict_function_completed e predict_model_cache_hit à sessão.
  3. Inicie a sessão de evento estendido.
  4. Execute a consulta que usa PREDICT.

Nos resultados, examine estas colunas:

  • O valor de predict_function_completed mostra quanto tempo a consulta gastou ao carregar o modelo e a pontuação.
  • O valor booliano de predict_model_cache_hit indica se a consulta usou um modelo em cache ou não.

Cache de modelo de pontuação nativa

Além dos eventos específicos de PREDICT, você pode usar as consultas a seguir para saber mais sobre o uso do cache e do modelo em cache:

Exibir o cache de modelo de pontuação nativa:

SELECT *
FROM sys.dm_os_memory_clerks
WHERE type = 'CACHESTORE_NATIVESCORING';

Exibir os objetos no cache de modelo:

SELECT *
FROM sys.dm_os_memory_objects
WHERE TYPE = 'MEMOBJ_NATIVESCORING';

Próximas etapas

Para saber mais sobre eventos estendidos (às vezes chamados de XEvents) e como rastrear eventos em uma sessão, confira estes artigos: