我有以下表格架构 -
CREATE TABLE [dbo].[TEST_TABLE]
(
[TEST_TABLE_ID] [int] IDENTITY(1,1) NOT NULL,
[NAME] [varchar](40) NULL,
CONSTRAINT [PK_TEST_TABLE] PRIMARY KEY CLUSTERED
(
[TEST_TABLE_ID] ASC
)
)
我已经在TEST_TABLE
.
由于我已将TEST_TABLE_ID
列标记为主键,因此将在TEST_TABLE_ID
.
当我运行以下查询时,执行计划会显示Clustered Index Scan
预期的结果。
SELECT * FROM TEST_TABLE WHERE TEST_TABLE_ID = 34
但是,当我运行以下查询时,我期望 Table Scan as NAME 列没有任何索引:
SELECT * FROM TEST_TABLE WHERE NAME LIKE 'a%'
但在执行计划中显示Clustered Index Scan
。
由于 NAME 列没有任何索引,为什么它正在访问聚集索引?
我相信,这是因为聚集索引驻留在数据页上而发生的。
谁能告诉我我的假设是否正确?还是有其他原因?