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

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属性上的唯一性非群集索引。
========================
从这道题出发,欢迎大家讨论一下聚集索引和非聚集索引的区别以及这两种索引候选键的选择依据!
...全文
193 7 打赏 收藏 转发到动态 举报
写回复
用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属性上的唯一性聚集索引。
---------
这个PDF文件是我花钱买来的,现在为了挣积分,拿出来与大家分享!! 本书深入浅出地介绍了目前世界上最受欢迎的数据库管理系统之一——SQL Server。全书共分三个部分:第一部分阐释了数据库的基本概念,讲解了数据库建模语言;第二部分展示了从概念建模到在SQL Server 2008上真正实现数据库的过程;第三部分深入探讨了SQL Server若干方面的技术细节,如数据保护、索引、并发访问等。通过将理论融入数据库实践,清晰地讲解了关系型数据库的设计原则,完整地展示了如何进行良好的关系型数据库设计,深入揭示了SQL Server 2008的技术细节。   本书浓缩了作者作为SQL Server数据库架构师多年来丰富的实践经验,适合各类数据库开发和管理人员学习参考 目录 第1章 数据库概念简介  1.1 数据库设计阶段   1.1.1 概念阶段   1.1.2 逻辑阶段   1.1.3 实现阶段   1.1.4 物理阶段  1.2 关系数据结构   1.2.1 数据库和模式   1.2.2 表、行和列   1.2.3 信息原则   1.2.4 域   1.2.5 元数据   1.2.6 键   1.2.7 未显式赋值的项(NULL)  1.3 实体之间的关系   1.3.1 二元关系   1.3.2 非二元关系  1.4 数据访问语言(SQL)  1.5 理解依赖性   1.5.1 函数依赖性   1.5.2 判定  1.6 总结 第2章 数据建模语言  2.1 数据建模介绍  2.2 实体  2.3 属性   2.3.1 主键   2.3.2 替代键   2.3.3 外键   2.3.4 域   2.3.5 命名  2.4 关系   2.4.1 识别性关系   2.4.2 非识别性关系   2.4.3 角色名字   2.4.4 关系基数   2.4.5 动词短语(关系名字)  2.5 描述信息  2.6 其他建模方法   2.6.1 信息工程   2.6.2 Chen ERD   2.6.3 Visio   2.6.4 Management Studio数据库关系图  2.7 最佳实践  2.8 总结 第3章 概念阶段数据建模  3.1 理解需求  3.2 文档化过程  3.3 需求收集   3.3.1 客户访谈   3.3.2 要回答的问题   3.3.3 现存的系统和原型   3.3.4 其他类型的文档  3.4 识别对象和过程   3.4.1 识别实体   3.4.2 实体间关系   3.4.3 识别属性和域  3.5 识别业务规则和业务过程   3.5.1 识别业务规则   3.5.2 识别基础业务过程  3.6 完成概念模型   3.6.1 识别明显的、额外的数据需求   3.6.2 和客户一起评审   3.6.3 重复以上步骤直到客户同意你的模型  3.7 最佳实践  3.8 总结 第4章 规范化过程  4.1 为什么要规范化   4.1.1 消灭重复数据   4.1.2 避免编写不必要的代码   4.1.3 给表瘦身   4.1.4 最大化聚集索引的使用   4.1.5 降低每张表中索引的数量  4.2 规范化应该走多远  4.3 规范化过程  4.4 实体和属性的形式:第一范式   4.4.1 所有属性必须是原子的   4.4.2 实体的所有实例必须包含相同数量的值   4.4.3 实体中出现的所有实体类型都必须不同   4.4.4 第一范式所避免的不规则编程   4.4.5 当前设计不符合第一范式的线索  4.5 属性间的关系   4.5.1 第二范式   4.5.2 第三范式   4.5.3 Boyce-Codd范式  4.6 实体中的多值依赖   4.6.1 第四范式   4.6.2 第五范式  4.7 非规范化  4.8 最佳实践  4.9 总结  4.10 额外的例子  4.11 本书迄今为止所讲述的故事 第5章 实现基础的表结构  5.1 评审逻辑设计  5.2 变换设计   5.2.1 选择名字   5.2.2 处理子类型   5.2.3 决定树的实现方式   5.2.4 选择键的实现方式   5.2.5 决定域的实现方式   5.2.6 设置模式   5.2.7 评审“最终的”实现模型  5.3 实现设计   5.3.1 创建基本表结构   5.3.2 添加唯一性约束   5.3.3 构建默认约束   5.3.4 添加关系(外键)   5.3.5 处理排序规则和排序   5.3.6 计算列   5.3.7 实现用户定义的数据类型   5.3.8 文档化你的数据库   5.3.9 处理依赖信息  5.4 最佳实践  5.5 总结 第6章 保护数据的完整性  6.1 最佳实

27,581

社区成员

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

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