唯一索引:唯一索引不允许两行具有相同的索引值主键索引:为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主索引要求主键中的每个值是唯一的,并且不能为空。聚集索引(Clustered):表中各行的物理顺序与键值的逻辑(索引)顺序相同,每个表只能有一个非聚集索引(Non-clustere...
分类:
数据库 时间:
2015-05-22 18:29:00
阅读次数:
192
时间过得真快——再过几分钟,你就要完成第2个月的性能调优培训。今天这部分培训我想讲下非聚集索引的更多信息,还有你会碰到它的一些负作用。上一星期我们讨论了SQL Server里的书签查找,它是非常危险的。在执行计划里SQL Server访问非聚集索引时,额外列必须要从表本身获取时(因为它们不是非聚集索...
分类:
其他好文 时间:
2015-05-20 22:08:39
阅读次数:
142
SQL索引在数据库优化中占有一个非常大的比例,一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开他的神秘面纱。 1.1什么是索引? SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQLServer系统的性能,加快数据的查询速度与减少系统的响应时间下面举两个.....
分类:
数据库 时间:
2015-05-19 12:08:42
阅读次数:
237
让我们用现实生活中的例子来理解这2类索引。假设你的邻居到你家,问你“Woody Tu”的电话号码。在这种情况下,电话本目录就是个聚集索引。你打开电话本目录,跳过3/4的页,假定他的名字应该出现在目录的最后一部分。在前后翻过几页后,你找到了列有“Woody Tu”名字的页。现在你就可以把号码告诉你的邻...
分类:
其他好文 时间:
2015-05-18 15:58:25
阅读次数:
129
在“索引深入浅出:非聚集索引的B树结构在聚集表”里,我们讨论了在聚集表上的非聚集索引,这篇文章我们讨论下在堆表上的非聚集索引。非聚集索引可以在聚集表或堆表上创建。当我们在聚集表上创建非聚集索引时,聚集索引键担当为行指针。在堆表里,文件号,页号和槽号(file id , page number and...
分类:
其他好文 时间:
2015-05-14 20:23:20
阅读次数:
242
上个星期我讨论了SQL Server里的聚集索引。当你在表上定义了一个聚集索引,你是物理上把你的表数据按提供的聚集键列的顺序存储。在SQL Server里,一个表只能定义一个聚集索引,非聚集索引可以定义多个(最多999个)。非聚集索引是第二索引,你可以在表上列进行定义。你也可以把非聚集索引与书比较。...
分类:
其他好文 时间:
2015-05-14 16:04:52
阅读次数:
147
一个表只能有一个聚集索引,数据行以此聚集索引的顺序进行存储,一个表却能有多个非聚集索引。我们已经讨论了聚集索引的结构,这篇我们会看下非聚集索引结构。非聚集索引的逻辑呈现简单来说,非聚集索引是表的子集。当我们定义了一个非聚集索引时,SQL Server把整套非聚集索引键存在不同的页里。我们来看下一个包...
分类:
其他好文 时间:
2015-05-14 00:41:40
阅读次数:
186
在第十级到十二级中,我们看了索引的内部结构,以及改变结构造成的影响。在本文中,继续查看Insert,update,delete和merge造成的影响。首先,我们单独看一下这四个命令。插入INSERT当向表中插入一行数据的时候,不管表是堆表还是聚集索引表,肯定会在表的索引中插入一个入口,过滤索引除外。...
分类:
数据库 时间:
2015-05-13 18:51:56
阅读次数:
266
在SQL Server里,有2种表是以存储为基础的。有聚集索引的表叫聚集表,没有聚集索引的表叫堆表。在上一篇文章,我们讨论了堆表的特性和存储结构。在这篇文章里,我们来看下聚集表。有聚集索引的表叫聚集表。聚集索引保存了使用B树结构的聚集键,并只能以此顺序存储实际的数据。这也是SQL Server限制一...
分类:
其他好文 时间:
2015-05-13 00:35:24
阅读次数:
363
原本是使用聚集索引主键发现的,确认不是主键问题,是聚集索引问题。
version:Microsoft SQL Server 2008 R2 (SP1)
-- 创建测试表
-- drop table [TestTable]
create table [dbo].[TestTable](
[id] [int] not null,
[name] [varchar](20) not n...
分类:
数据库 时间:
2015-05-12 21:07:57
阅读次数:
157