从这道题出发,欢迎讨论聚集索引和非聚集索引的区别

cadust 2010-07-28 05:01:08
为存储学院中学生的材料,创建Student表如下:
CREATE TABLE Student
(
cStudentCode char(3) not null,
cStudentName char(40) not null,
cStudentAddress char(50) not null,
cStudentState char(30) not null,
cStudentCity char(30) not null,
cStudentPhone char(40) not null,
cStudentEmail char(40) null
)
每天对Student表要执行许多基于学生代码的查询。
没有两个学生可以有相同的学生代码。
在每学期结束时要在Student表中输入新学生的材料。

为改进查询的性能。你应创建什么类型的索引?
1.cStudentCode属性上的群集索引。
2.cStudentCode属性上的非群集索引。
3.cStudentCode属性上的唯一性群集索引。
4.cStudentCode属性上的唯一性非群集索引。
========================
从这道题出发,欢迎大家讨论一下聚集索引和非聚集索引的区别以及这两种索引候选键的选择依据!
...全文
123 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
obuntu 2010-07-28
  • 打赏
  • 举报
回复
3、cStudentCode属性上的唯一性聚集索引。



你这数据量太小了。。。这个就可以满足,反正设为主键就行了。
playwarcraft 2010-07-28
  • 打赏
  • 举报
回复
cStudentCode设为主键,就好了
rucypli 2010-07-28
  • 打赏
  • 举报
回复
在创建聚集索引之前,应先了解数据是如何被访问的。考虑对具有以下特点的查询使用聚集索引:

使用运算符(如 BETWEEN、>、>=、< 和 <=)返回一系列值。

使用聚集索引找到包含第一个值的行后,便可以确保包含后续索引值的行物理相邻。例如,如果某个查询在一系列销售订单号间检索记录,SalesOrderNumber 列的聚集索引可快速定位包含起始销售订单号的行,然后检索表中所有连续的行,直到检索到最后的销售订单号。


返回大型结果集。


使用 JOIN 子句;一般情况下,使用该子句的是外键列。


使用 ORDER BY 或 GROUP BY 子句。

在 ORDER BY 或 GROUP BY 子句中指定的列的索引,可以使数据库引擎 不必对数据进行排序,因为这些行已经排序。这样可以提高查询性能。
pt1314917 2010-07-28
  • 打赏
  • 举报
回复
聚集索引和非聚集索引区别:
1、聚集索引在一个表中只能有一个,非聚集索引可以有多个,
2、聚集索引会改变数据在表中存放的物理顺序,非聚集索引不会。聚集索引对数据优化效率提高较明显。。
一般在表中,主键默认为聚集索引。。。
永生天地 2010-07-28
  • 打赏
  • 举报
回复
群集索引影响表中数据物理存储
非群不影响
guguda2008 2010-07-28
  • 打赏
  • 举报
回复
3.cStudentCode属性上的唯一性群集索引。
在插入时保证代码生成是有序的就行,比如用年月加一个流水号。
pt1314917 2010-07-28
  • 打赏
  • 举报
回复
3、cStudentCode属性上的唯一性聚集索引。
---------

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧