use mspetshop4profile
go
create table Profiles
( UniqueId int identity(1,1) not null,
Username nvarchar(256) not null,
ApplicationName nvarchar(256) not null,
IsAnonymous bit null,
LastActivityDate datetime null,
LastUpdatedDate datetime null,
/* pk_profiles_1 ----- create primary key index 主键索引*/
constraint[pk_profiles_1] primary key nonclustered
(
[UniqueId] asc
)with (ignore_dup_key=off) on [primary],
/* pk_profiles-------create table index 表列索引*/
constraint [pk_profiles] unique clustered
(
[Username] asc,
[ApplicationName] asc
)with (ignore_dup_key=off) on [primary]
)on [primary]
请问聚集索引 和非聚集索引有没有具体的区分?是什么?有最明白的解说吗?
IGNORE_DUP_KEY
指定对唯一聚集索引或唯一非聚集索引的多行 INSERT 事务中重复键值的错误响应。

解决方案 »

  1.   

    以《新华字典》举例,它里面所有的字都是根据拼音排序的,当我们需要查“我”一字时,直接可以翻到w这一块,然后再找wo,很快就找到了 ---- 这是聚集索引如果现在是以偏方部首查字,那么首先需要翻一下字典前面的目录,得到这个字所在的页码,从而查得该字  -----这是非聚集索引用上面两个举例说明:聚集索引效率最高,但是一个表只有有一个;非聚集索引则可以有多个;不过索引也不是却多越好,如果现在要往字典增加一个新字或删除一字,就要去维护这些目录唯一索引是索引的另外一种,不同于上面两种,它的功能是把某一个字段单独抽离出来,在用户插入数据时检索一下,不允许该字段出现重复
      

  2.   

    sql server数据页分为数据页和索引页
    如果定义一列为聚集索引 那么在数据物理存储上是按照该列的顺序排序的,每次插入或修改记录时,数据都会根据聚集索引列从新排序.以后查询该列速度就很快了非聚集索引是把一列的顺序放在索引页,物理顺序不会更改
    ....