私は次のテーブルスキーマを持っています-
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
しかし、次のクエリを実行しているとき、NAME列にはインデックスがないため、テーブルスキャンを期待していました。
SELECT * FROM TEST_TABLE WHERE NAME LIKE 'a%'
しかし、実行計画ではそれが表示されていClustered Index Scan
ます。
NAME列にはインデックスがないのに、なぜクラスター化インデックスにアクセスしているのですか?
これは、クラスター化されたインデックスがデータページに存在するために発生していると思います。
私の仮定が正しいかどうか誰かに教えてもらえますか?それとも他に理由がありますか?