我想知道每次有人查询视图时,sql server 是否都会计算视图。这是因为我每次查询视图都需要很长时间。
当我试图通过仅从视图中选择前 10 行来缩短时间时,它花费了相同的时间。我怀疑 sql server 需要计算整个表的视图,即使我只想要视图中的几行,对吗?
是的,视图只是一个宏(除非已编入索引)。这种行为是众所周知的。
请参阅托尼·罗杰森 (Tony Rogerson) 的文章。您也可以在查询计划中自行查看。查询计划中不存在视图,因为它不能作为宏存在
还要注意在视图上进行过滤或 TOP 时的“谓词推送”现象
| 归档时间: |
|
| 查看次数: |
2234 次 |
| 最近记录: |