在 SQL Server 机器学习服务中使用扩展事件监视 PREDICT T-SQL 语句
适用于:SQL Server 2017 (14.x) 及更高版本 Azure SQL 托管实例
了解如何在 SQL Server 机器学习服务中使用扩展事件监视和排除 PREDICT T-SQL 语句。
扩展事件表
以下扩展事件在所有支持 PREDICT T-SQL 语句的 SQL Server 版本中都可用。
name | object_type | description |
---|---|---|
predict_function_completed | event | 内置执行时间细分 |
predict_model_cache_hit | event | 从 PREDICT 函数模型缓中存检索模型时发生。 可将此事件与其他 predict_model_cache_* 事件结合使用来解决由 PREDICT 函数模型缓存引起的问题。 |
predict_model_cache_insert | event | 将模型插入 PREDICT 函数模型缓存时发生。 可将此事件与其他 predict_model_cache_* 事件结合使用来解决由 PREDICT 函数模型缓存引起的问题。 |
predict_model_cache_miss | event | 在 PREDICT 函数模型缓存中找不到模型时发生。 频繁出现此事件可能表示 SQL Server 需要更多内存。 可将此事件与其他 predict_model_cache_* 事件结合使用来解决由 PREDICT 函数模型缓存引起的问题。 |
predict_model_cache_remove | event | 从 PREDICT 函数的模型缓存中删除模型时发生。 可将此事件与其他 predict_model_cache_* 事件结合使用来解决由 PREDICT 函数模型缓存引起的问题。 |
查询相关事件
若要查看为这些事件返回的所有列的列表,请在 SQL Server Management Studio 中运行以下查询:
SELECT *
FROM sys.dm_xe_object_columns
WHERE object_name LIKE 'predict%'
示例
要使用 PREDICT 捕获有关评分会话性能的信息,请执行以下操作:
- 使用 Management Studio 或其他受支持的工具创建新的扩展事件会话。
- 将事件
predict_function_completed
和predict_model_cache_hit
添加到会话中。 - 启动扩展事件会话。
- 运行使用 PREDICT 的查询。
在“结果”中,查看以下列:
predict_function_completed
的值显示查询在加载模型和评分上花费的时间。predict_model_cache_hit
的布尔值指示查询是否使用缓存的模型。
本机评分模型缓存
除特定于 PREDICT 的事件之外,还可使用以下查询来获得有关缓存模型和缓存使用情况的更多信息:
查看本机评分模型缓存:
SELECT *
FROM sys.dm_os_memory_clerks
WHERE type = 'CACHESTORE_NATIVESCORING';
查看模型缓存中的对象:
SELECT *
FROM sys.dm_os_memory_objects
WHERE TYPE = 'MEMOBJ_NATIVESCORING';
后续步骤
有关扩展事件(有时称为 XEvent)以及如何在会话中跟踪事件的更多信息,请参阅以下文章: