小编典典

SQL通配符:性能开销?

sql

我已经用Google搜索了这个问题,似乎找不到一致的意见,也找不到很多基于可靠数据的意见。我只是想知道,在SQL
SELECT语句中使用通配符是否会引起比单独调用每个项目更多的开销。我已经在几个不同的测试查询中比较了两者的执行计划,并且看起来估计总是相同。是否可能在其他地方产生一些开销,或者它们的处理方式是否完全相同?

我具体指的是:

SELECT *

SELECT item1, item2, etc.

阅读 262

收藏
2021-03-10

共1个答案

小编典典

SELECT * FROM…

SELECT every, column, list, ... FROM...

将执行相同的操作,因为两者都是未经优化的扫描

区别在于:

  • sys.columns中的额外查询来解决*
  • 表架构更改时合同/签名的更改
  • 无法创建覆盖索引。实际上,根本没有任何调整选项
  • 如果未绑定架构,则必须刷新所需的视图
  • 不能使用*索引或架构绑定视图
  • …和其他东西
2021-03-10