Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server探查器不一致_Sql Server_Sql Server 2005_Performance_Sql Server Profiler - Fatal编程技术网

Sql server SQL Server探查器不一致

Sql server SQL Server探查器不一致,sql-server,sql-server-2005,performance,sql-server-profiler,Sql Server,Sql Server 2005,Performance,Sql Server Profiler,我正在使用Sql事件探查器解决一个奇怪的问题。在运行一些性能测试脚本时,我运行profiler来查找瓶颈。一个特殊的语句似乎花费了很多时间——CPU 1407,读取75668,持续时间175 然而,当我在ManagementStudio中运行相同的语句时,SQL探查器返回CPU 16,读取4和持续时间55 谁能告诉我我做错了什么,因为我完全被这件事弄糊涂了 谢谢,Susan。您可能有一个具有表访问权限的标量用户定义函数 使用的资源仅由探查器获取:SSMS不会显示标量udf的内部IO或CPU 例如

我正在使用Sql事件探查器解决一个奇怪的问题。在运行一些性能测试脚本时,我运行profiler来查找瓶颈。一个特殊的语句似乎花费了很多时间——CPU 1407,读取75668,持续时间175

然而,当我在ManagementStudio中运行相同的语句时,SQL探查器返回CPU 16,读取4和持续时间55

谁能告诉我我做错了什么,因为我完全被这件事弄糊涂了


谢谢,Susan。

您可能有一个具有表访问权限的标量用户定义函数

使用的资源仅由探查器获取:SSMS不会显示标量udf的内部IO或CPU

例如:

CREATE FUNCTION dbo.MyUdf (
    @param int
)
AS
RETURNS int
BEGIN
    RETURN (SELECT MAX(foo) FROM dbo.MyOtherTable WHERE Key = @param)
END
GO


SELECT
    col1, col2, dbo.MyUdf(col3)
FROM
    dbo.MyFirstTable

但是,这可能无法解释持续时间…

您可能有一个具有表访问权限的标量用户定义函数

使用的资源仅由探查器获取:SSMS不会显示标量udf的内部IO或CPU

例如:

CREATE FUNCTION dbo.MyUdf (
    @param int
)
AS
RETURNS int
BEGIN
    RETURN (SELECT MAX(foo) FROM dbo.MyOtherTable WHERE Key = @param)
END
GO


SELECT
    col1, col2, dbo.MyUdf(col3)
FROM
    dbo.MyFirstTable

但是,这可能无法解释持续时间…

是一个java/hibernate问题。

是一个java/hibernate问题。

如果您在评测之后直接在enterprise manager中运行查询,它需要的所有页面都将缓存在内存中。这可能导致巨大的改进


如果在Enterprise Manager中右键单击服务器并选择属性,则可以更改服务器可用的内存量。如果您仅在一个步骤中更改此数字,SQL server将刷新其缓存。

如果您在分析之后直接在enterprise manager中运行查询,则它需要的所有页面都将缓存在内存中。这可能导致巨大的改进


如果在Enterprise Manager中右键单击服务器并选择属性,则可以更改服务器可用的内存量。如果您只需更改一步,SQL server就会刷新其缓存。

也许您没有做错任何事情,并且看到了缓存的结果。如果您再次配置文件,所花费的时间会缩短吗?谢谢您的提示,但我先清除了缓存。也许您没有做错任何事情,并且看到了缓存的结果。如果您再次配置文件,所用的时间会缩短吗?谢谢您的提示,但我先清除了缓存。谢谢。这是一个常见的问题,如果您仔细想想,它实际上是一个游标……我认为它可能使用了一个游标,因为我在sql exec sp中看到了这一点_prepexec@Susan:你能把冒犯性的声明贴出来吗?我们得到了更多的信息,我们发现,该语句是从Java/Hibernate组合中调用的,调用方式是返回50000行,而不是执行该语句时返回的2行directly@Susan:有趣。你有更多的给我们吗?谢谢。这是一个常见的问题,如果您仔细想想,它实际上是一个游标……我认为它可能使用了一个游标,因为我在sql exec sp中看到了这一点_prepexec@Susan:你能把冒犯性的声明贴出来吗?我们得到了更多的信息,我们发现,该语句是从Java/Hibernate组合中调用的,调用方式是返回50000行,而不是执行该语句时返回的2行directly@Susan:有趣。你有更多的给我们吗?