sql-server - 分析用户定义函数中的语句

标签 sql-server sql-server-2005 tsql profiling user-defined-functions

我正在尝试使用 SQL Server Profiler (2005) 来追踪一些应用程序性能问题。正在进行的调用之一是对表值用户定义函数的调用。此函数包装了一个将多个表连接在一起的选择。

在 SQL Server Profiler 中,记录了对 UDF 的调用。然而,作为 UDF 基础的选择根本没有被记录。因此,我没有获得有关哪些表和索引被命中的有用数据。我想将此信息提供给数据库优化顾问以获得一些索引建议。

有什么方法(除了自己展开查询之外)在 Profiler 中记录 UDF 调用的表吗?

最佳答案

你不能:多语句 TVF 是一个黑盒子,你只能获取 CPU、读取、写入等。

我所说的“黑匣子”是指它是另一个查询中完全封装和不透明的一系列语句,并且没有像您通过存储过程逐行获取那样的“流程”。

内联 TVF 像 View 或宏一样扩展到主查询中并且可以看到。

编辑:相关:Table Valued Function where did my query plan go?

关于sql-server - 分析用户定义函数中的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2435587/

相关文章:

c# - 数据表 : is deleting old DataRows before inserting new safe?

sql-server - AWS MSSQL 2017 RDS 中的维护计划

sql - 为什么 COUNT(DISTINCT fieldS) 比 COUNT(DISTINCT LTRIM(RTRIM(UPPER(fieldS)))) 慢?

sql - MS SQL Server,多次插入

SQL Server 多个 REPLACE with #temp 表

sql-server-2008 - SQL Server 返回意外的周数

sql-server - 字段正在更新为相同的值

sql-server - SQL Server 中的 Try-Catch 存储过程

sql-server - 替换字符串中 N 位置的字符

sql - 在所有表上禁用外键约束不起作用