`
java-mans
  • 浏览: 11427281 次
文章分类
社区版块
存档分类
最新评论

Nonclustered Indexes页级别包含什么数据?

 
阅读更多

先来看两个例子:

1.创建测试表,C1为主键。

CREATE TABLE [dbo].[ProdTable2](

[c1] [int] IDENTITY(1,1)NOTNULL,

[c2] [datetime] NULL,

[c3] [char](25)NULL,

CONSTRAINT[PK_ProdTable2] PRIMARY KEY CLUSTERED

(

[c1] ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY]

) ON [PRIMARY]

2.创建非聚集索引:

CREATE NONCLUSTERED INDEX(

[c2] ASC

)

INCLUDE( [c3])WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,SORT_IN_TEMPDB=OFF,IGNORE_DUP_KEY=OFF,DROP_EXISTING=OFF,ONLINE=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY]

GO

3.查询C1表的所有字段,限制条件为C2:

select * from dbo.ProdTable2

where c2 ='2012-08-0111:03:09.687'

执行计划:

可以看到查询使用了索引Ix_C2一次性返回所有数据(C1C2C3),说明在有Cluster索引表中,非聚集索引页业级别存储了Cluster index key,valueNONCLUSTERED INDEX值以及Include字段值。

4.删除主键再运行相同的查询得到下面的执行计划:

可以看到使用了索引Ix_C2以及RID Lookup共同返回数据,说明非聚集索引页级别在HEAP表中存储的是RIDFileID:PageID:SlotNumberNONCLUSTERED INDEX值以及Include 字段值。

分享到:
评论

相关推荐

    深入浅出理解数据库索引结构 .doc

    微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: ...

    微软内部资料-SQL性能优化5

    As we’ll see, the clustered key is duplicated in every nonclustered index row, so keeping your clustered key small will allow you to have more index fit per page in all your indexes. Note The ...

    数据库系统概论chp3-2.pptx

    数据库原理第三章:关系数据库标准语言SQL 数据库系统概论chp3-2全文共66页,当前为第1页。 问题 1. 模式的作用是什么?它和用户有什么关联? 2. SQL Server2008在删除模式时的默认级联选项是什么? 3.在创建数据表...

    Oracle体系架构

    一个数据库管理系统,提供了开放的、全面的、完整的信息管理方法

    ORACLE RAC

    描述了oracle RAC的相关内容 Oracle 11g: RAC and Grid Infrastructure Administration Accelerated Volume I - Student Guide

    数据库SQLSERVER索引

    SQLServer中有几个可以让你检测、调整和优化SQL...当考察建立什么类型的索引时,你应当考虑数据类型和保存这些数据的column。同样,你也必须考虑数据库可能用到的查询类型以及使用的最为频繁的查询类型。 索引的类型

    Murach's SQL Server 2016 for Developers

    improvements for columnstore indexes in SQLServer 2016: updateable nonclustered columnstore indexes, columnstore indexes on in-memory tables, and many other new features for operational analytics. ...

    唯一非聚集索引变量传入时索引失效解决方案

    而且随着数据量的增大,每次重新编译索引, 本身就导致SQL语句变慢. 最终解决方案: 唯一非聚集索引留着, 再添加一个 非聚集索引,保留两个索引, 终于搞定了. CREATE UNIQUE NONCLUSTERED INDEX [IX_SF_CP_Detail_MAC...

    Oracle Database 12c RAC 体系结构

    – Oracle Clusterware enables nonclustered and RAC databases to use the Oracle high-availability infrastructure. – Oracle Clusterware enables you to create a clustered pool of storage to be used by ...

    病人资料管理系统

    相比之下,国内的相当数量的中小型医院的病人资料工作流程还采用相对保守的人工工作方式,数据信息的查询和存储的成本较高,而且效率还很低下。所以需要一种对于医院的病人资料管理系统来高效、低成本、便捷的进行...

    优化 SQL Server 索引的小技巧

    当考察建立什么类型的索引时,你应当考虑数据类型和保存这些数据的column。同样,你也必须考虑数据库可能用到的查询类型以及使用的最为频繁的查询类型。 索引的类型 如果column保存了高度相关的数据,

    SQL Server 索引结构及其使用(一)–深入浅出理解索引结构第1/4页

    微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: ...

    sql试 题答案和试题

    9、视图是一种常用的数据对象,它是提供(1___)和(1___)数据的另一种途径,可以简化数据库操作,当使用多个数据表来建立视图时,表的连接不能使用(2___)方式,并且不答应在该语句中包括(3___)等要害字。...

    SQL Server允许重复空字段不空字段值唯一

    表结构如下面代码创建 代码如下: CREATE TABLE test_tb ( TestId int not null ... 代码如下: CREATE UNIQUE NONCLUSTERED INDEX un_test_tb ON test_tb(Caption) GO 索引创建好了,我们来测试下效果 代码如下: INSE

    动易数据结构Database

    CONSTRAINT [PK_PE_Address_AddressID] PRIMARY KEY NONCLUSTERED ([AddressID]) ) ON [PRIMARY] GO EXEC sp_addextendedproperty 'MS_Description', N'地址表', 'schema', 'dbo', 'table', 'PE_Address' GO EXEC...

    Ms SQL 优化-索引

    微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)……

    SQL Server 2000索引结构及使用方法

    微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。

    SQL Server如何保证可空字段中非空值唯一

    表结构如下面代码创建 代码如下: CREATE TABLE test_tb ( TestId int not null ... 代码如下: CREATE UNIQUE NONCLUSTERED INDEX un_test_tb ON test_tb(Caption) GO 索引创建好了,我们来测试下效果 代码如下: INSE

    SQL优化-索引(1-15).rar

    微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)……

    SQL 优化

    微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: ...

Global site tag (gtag.js) - Google Analytics