表格扫描究竟有效吗?
以下是我所知道的:
让我们假设我们有这种情况:
表-A
列:ID,城市,国家/地区
我在City
上有一个聚集索引。
我运行的查询是:
select city
from table_a
where city = 'austin'
实际问题:
在这种情况下,表扫描只会查看city
列,还是会检查ID,城市和国家/地区列。
如果表扫描只搜索一列,是否可以说表扫描和索引扫描具有相同的性能?
编辑第1部分:
谷歌搜索写道:当表扫描发生时,SQL Server会将所有行和列读入内存。当索引扫描发生时,它将读取所有行,只读取索引中的列。
答案 0 :(得分:0)
查看执行计划。我希望聚集索引搜索,以便只触摸具有指定城市的那些行。如果搜索非索引列,将执行聚簇索引扫描,以便触摸所有行,但仅返回符合条件的行。
只会从行中提取查询所需的列,并且在扫描或搜索操作期间不会检查无关列。