一、非聚集索引维护 非聚集索引的行定位器值保持相同的聚集索引值,即使该聚集索引列物理上重新定位后,也是如此。 为了优化这个维护开销,SQL Server添加一个指向旧数据页的指针,以在页面分割之后指向新的数据页面,而不是更新所有相关非聚集索引的行定位器。这样,虽然降低了非聚集索引的维护开销,但...
分类:
数据库 时间:
2015-05-31 13:47:38
阅读次数:
132
聚集索引、非聚集索引、非聚集唯一索引 我们都知道建立适当的索引能够提高查询速度,优化查询。先说明一下,无论是聚集索引还是非聚集索引都是B树结构。 聚集索引默认与主键相匹配,在设置主键时,SQL Server会默认在主键列创建聚集索引。但是可以手动更改为在任意一个列创建聚集索引,然后在另一个字段...
分类:
数据库 时间:
2015-05-31 13:45:59
阅读次数:
115
一、存储结构 在SQL Server中,有许多不同的可用排列规则选项。 二进制:按字符的数字表示形式排序(ASCII码中,用数字32表示空格,用68表示字母"D")。因为所有内容都表示为数字,所以处理起来速度最快,遗憾的是,它并不总是如人们所想象,在WHERE子句中进行比较时,使用该选项会造成...
分类:
数据库 时间:
2015-05-31 12:15:27
阅读次数:
450
SQL Server索引的设计主要考虑因素如下: 检查WHERE条件和连接条件列; 使用窄索引; 检查列的选择性; 检查列的数据类型; 考虑列顺序; 考虑索引类型(聚集索引OR非聚集索引);一、检查WHERE条件列和链接条件列 当一个查询提交到SQL Server时,查询优化器尝试为...
分类:
数据库 时间:
2015-05-31 12:13:44
阅读次数:
298
一、书签查找的概念 书签可以帮助SQL Server快速从非聚集索引条目导向到对应的行,其实这东西几句话我就能说明白。 如果表有聚集索引(区段结构),那么书签就是从非聚集索引找到聚集索引后,利用聚集索引定位到数据。此处的书签就是聚集索引。如果表没有聚集索引(堆结构)。那么扫描非聚集索引后,通过...
分类:
数据库 时间:
2015-05-31 12:13:34
阅读次数:
176
聚集索引的叶子页存储的就是表的数据。因此,表行物理上按照聚集索引列排序,因为表数据只能有一种物理顺序,所以一个表只能有一个聚集索引。 当我们创建主键约束时,如果不存在聚集索引并且该索引没有被明确指定为非聚集索引,SQL Server会自动将其创建为唯一的聚集索引,这并不是说主键列就一定是聚集索引,....
分类:
数据库 时间:
2015-05-31 12:10:40
阅读次数:
167
一,非聚集索引组合索引 用户可以在多个列上建立索引,这种索引叫做复合索引(组合索引)。但复合索引在数据库操作期间所需的开销更小,可以代替多个单一索引。当表的行数远远大于索引键的数目时,使用这种方式可以明显加快表的查询速度。 同时有两个概念叫做窄索引和宽索引,窄索引是指索引列为1-2列的索引,如果不特...
分类:
数据库 时间:
2015-05-25 09:43:10
阅读次数:
237
一,非聚集索引的include 非聚集索引的Include属性可以让非聚集索引包含其他列。如 CREATE NONCLUSTERED INDEX [NonIxUser] ON [dbo].[Users] ( [NAME] ASC ) INCLUDE ( [ID], [CreatTime]) GO 这...
分类:
数据库 时间:
2015-05-25 09:40:52
阅读次数:
159
一,新建测试表 CREATE TABLE [dbo].[Users]( [ID] [int] IDENTITY(1,1) NOT NULL, [NAME] [char](80) NOT NULL, [CreatTime] [datetime] NOT NULL ) ON [PRIMARY] 删除默认...
分类:
数据库 时间:
2015-05-24 23:28:19
阅读次数:
187
一、建立索引 微软的SQLSERVER提供了两种索引:聚集索引(clusteredindex,也称聚类索引、簇集索引)和非聚集索引(nonclusteredindex,也称非聚类索引、非簇集索引)。 聚集索引 我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字...
分类:
数据库 时间:
2015-05-24 17:24:14
阅读次数:
156