標籤:blog http ar strong 資料 sp div 2014 c
目前SQL Server 的索引結構如下:
這個是叢集索引的存放形式:
非叢集索引的方式如下:
它們是以B+樹的資料結構存放的。
相信大家都看過類似的圖,但是沒有直觀的認識,下面舉一個實際的例子來說明圖的結構。
USE Test--1.建立表,指定主鍵(會自動建立叢集索引)CREATE TABLE Person(Id int NOT NULL IDENTITY,Name varchar(10) NOT NULL,Sex varchar(2) NOT NULL,CONSTRAINT PK_Person PRIMARY KEY(Id));--2.建立非叢集索引CREATE INDEX idx_Person_Sex ON Person(Sex);
--3.插入1筆資料Insert Person values(‘P0‘,‘M‘);--4.查看錶有哪些頁DBCC ind ( Test, [dbo.Person], -1)
--5. 開啟3604監控DBCC TraceON(3604,-1)--6.查看叢集索引葉子節點頁的資料DBCC PAGE (Test,1,174, 1);
--7.插入1000條M和500條W記錄SET NOCOUNT ON;GODECLARE @i int;SET @i = 1000;WHILE @i < 2000BEGINInsert Person values(‘P‘ + convert(varchar(10),@i),‘M‘);SET @i = @i + 1;END; DECLARE @i int;SET @i = 2000;WHILE @i < 2500BEGINInsert Person values(‘P‘ + convert(varchar(10),@i),‘W‘);SET @i = @i + 1;END;GO --8.查看錶有哪些頁DBCC ind ( Test, [dbo.Person], -1)
--9.查看叢集索引頁的資料DBCC PAGE (Test,1,209, 3);
--10.查看非叢集索引頁的資料DBCC PAGE (Test,1,189, 3);
Index 的總結:
一個Index 可以有多個Page
Index 是以B+樹結構存放的,其中分支節點的資訊是存在一個Page中,而葉子節點存放在其他Page 。
SQL Server 的索引結構執行個體