我试图测试直接插入表与插入指向表的不同数据库中的视图之间的性能差异。我很惊讶地看到一个WHILE循环有10,000个插入到一个简单的表中需要3秒,但是对于视图需要30秒。
正如我调查的那样,我发现如果我在SSMS中切换窗口的视图性能与我认为应该存在的表格相同。然后我在视图窗口中将DB切换到表DB并插入到那里,当直接对着表时它很慢。
这使我认为连接存在一些差异。这些是SSMS中的不同选项卡,一个是使用-N创建的。我没有发出除SET NOCOUNT ON之外的任何SET命令(在两个窗口中),并且所有统计信息,查询计划等都被关闭。
当我运行SQL事件探查器来查看连接时,它们具有相同的设置。但性能差异是100%一致。
我检查过两个连接中都没有打开任何交易。
我尝试打开另一个SSMS实例,我无法复制慢速性能(尽管在第一个SSMS实例中我的三个选项卡中有两个发生了)。
这都在本地服务器上。我需要在大约一个小时内将其关闭,我不知道是否可以重现这个问题,所以希望我能在此之前得到一些建议:)
关于差异可能是什么其他任何想法?