我在SQL服务器安装中追踪一个奇怪而巨大的性能问题。在我的系统上,一个特定的存储过程需要2分钟才能执行;在同事的系统上,它只需不到1秒。我们有类似的数据库/数据和配置,但显然有一些非常不同的东西。
我在两个系统上通过Profiler运行了有问题的SP,并发现了一些奇怪的事情。在我的系统上,我看到9个具有以下属性的条目:
我找不到任何Googleable documentation这些是什么,为什么它们会如此慢,或者为什么它们会在一个系统上而不是另一个系统上运行。有谁知道他们的全部内容?
答案 0 :(得分:2)
我不知道你问题的答案。但是为了尝试解决你遇到的问题(我认为,这是你真正感兴趣的问题),我要做的第一件事是对你要查询的表运行重新索引。当条件如您所述(相同的数据库结构,不同的数据/数据库,相同的查询)时,这通常会解决任何类型的缓慢。
答案 1 :(得分:2)
尝试手动更新该表的统计信息。
UPDATE STATISTICS [TableName]
然后仔细检查AutoUpdateStatistics的数据库选项是否为TRUE。尽管如此,我已经看到过向表中添加大量数据并不总是导致统计数据及时更新的情况,并且查询可能会很慢。
答案 2 :(得分:1)
这些是链接服务器调用时创建的表。这些称为在Tempdb中创建的工作表。它们由数据库引擎自动创建,用于临时操作,如Spooling等。
答案 3 :(得分:0)
我不熟悉这些特定程序,但您可以尝试运行:
SELECT object_definition(object_id('Procedure Name'))
为了更好地了解幕后发生的事情。
答案 4 :(得分:0)
上次索引重建?上次统计更新?
否则,这些存储的过程也被SQL Server客户端使用......不是吗?并且可能不会导致这些错误
答案 5 :(得分:0)
这些sp意味着您的查询通过使用同义词来访问链接的服务器。应尽可能避免这种情况。