您能否建议比较表与视图的查询性能的最佳解决方案是什么。
我的意思是在同一台服务器上有两个数据库(SQL Server 2016
)。两者都包含相同的数据,但在不同的模式中,因此假设数据库A
我们在一个表中有数据A.Data
,在数据库 B 上相同的数据在表B.Data1
中,B.Data2
并且B.Data3
。所以在数据库B
上有一些 VIEV 显示与数据库上的表数据相同的数据A
(所以对于上面的例子,假设我们有View_Data
数据库视图B
)。
A.Data
比较表和视图查询的性能/效率的最佳方法是什么B.View_Data
?只是SET STATICTICS IO ON
比较这些统计数据?
SET STATISTICS ON
可以给你一个快速的提示,但逻辑和物理读取并不是一切。此外,考虑到您可以有多个迭代、多个表和不同类型的物理 IO,输出编译起来可能很麻烦。统计分析器可能会有所帮助:http ://statisticsparser.com/ 。我倾向于启动扩展事件 (XE) 跟踪,并在其中比较持续时间、CPU 等。对我来说,这是一个更完整的画面,也更容易消化。有些人发现 XE 很难使用,但我确实在几秒钟内就启动了这样的跟踪。这是我写的关于使用 XE 并避免一些障碍等的博客文章:http: //sqlblog.karaszi.com/tips-for-getting-started-with-extended-events/