代码之家  ›  专栏  ›  技术社区  ›  Tom H

连接之间的巨大性能差异

  •  2
  • Tom H  · 技术社区  · 14 年前

    我试图测试直接插入到表中与插入到指向表的其他数据库中的视图之间的性能差异。我很震惊地看到,在一个简单的表中插入10000个while循环花费了3秒,但与视图相反,花费了30秒。

    在我调查的过程中,我发现如果我在SSMS中切换窗口,那么视图的性能与表的性能应该是一样的。然后我将视图窗口中的DBS切换到表DB,并插入到表DB中,当直接对着表时,速度很慢。

    这让我想到了一个想法,那就是在联系上有一些不同。这些选项卡在SSMS中是不同的,其中一个是用-n创建的。除了(在两个窗口中)set nocount on之外,我没有发出任何set命令,并且所有统计信息、查询计划等都被关闭。

    当我运行SQL事件探查器查看连接时,它们具有相同的设置。但性能差异是100%一致的。

    我检查了两个连接中都没有打开的事务。

    我尝试打开另一个SSMS实例,但无法复制缓慢的性能(尽管在第一个SSMS实例中,我的三个选项卡中有两个发生了这种情况)。

    这些都在本地服务器上。我需要在一个小时内关闭它,我不知道是否能重现这个问题,所以希望在那之前我能得到一些建议:)

    还有什么不同的想法吗?

    1 回复  |  直到 14 年前
        1
  •  3
  •   Remus Rusanu    14 年前

    我建议您在中比较慢速和快速会话的行 sys.dm_exec_sessions 看看有没有什么不同。