测试所用数据库:SQLSERVER2012
我们都知道索引能提高查询速度,那么索引到底是怎么提高查询速度的呢?这要从索引的数据结构说起
索引分为聚集索引和非聚集索引,这两种索引的数据结构都是B+树,这篇文章主要讲解聚集索引
首先我们创建一个测试表:
CREATE TABLE Department(
DepartmentID int IDENTITY(1,1) NOT NULL PRIMARY KEY,
Name NVARCHAR(200) NOT NULL,
GroupName NVARCHAR(200) NOT NULL,
Company NVARCHAR(300),
ModifiedDate datetime NOT NULL DEFAULT (getdate())
)
再创建一个用来存储表对象内部存储信息的表:
CREATE TABLE DBCCResult (
PageFID NVARCHAR(200),
PagePID NVARCHAR(200),
IAMFID NVARCHAR(200),
IAMPID NVARCHAR(200),
ObjectID NVARCHAR(200),
IndexID NVARCHAR(200),
PartitionNumber NVARCHAR(200),
PartitionID NVARCHAR(200),
iam_chain_type NVARCHAR(200),
PageType NVARCHAR(200),
IndexLevel NVARCHAR(200),
NextPageFID NVARCHAR(200),
NextPagePID NVARCHAR(200),
PrevPageFID NVARCHAR(200),
PrevPagePID NVARCHAR(200)
)
向表Department中插入测试数据
INSERT INTO Department(name,[Company],groupname) VALUES('销售部','中国你好有限公司XX分公司','销售组')
GO 100000
将表Department的内部存储信息写入到表DBCCResult中: