数据库Oracle第4章3课件.pptVIP

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库Oracle第4章3课件

数据库应用技术 第四章 数据库对象 与数据库设计;4.4 索引;4.4.1 索引的作用与使用;为表中的每一个列都创建一个索引? 坏处 创建和维护索引要耗费时间,这种时间随着数据量的增加而增加。 索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,需要的空间就会更大。 当对表中的数据进行增加、删除和修改的时候,也要动态地维护索引,降低维护数据的速度。 ;4.4.2 建立和使用索引的原则;4.4.2 建立和使用索引的原则;使用索引 装载数据后再建立索引。 不应在一张表上建立太多的索引。 删除不经常使用的索引。 导入大量数据时,最好先删除索引,数据全部插入后,再重新创建索引。 在经常存取的多个字段上建立复合索引,顺序应参照字段使用的频率确定。 合理的索引要建立在对各种查询的分析和预测中,也取决于DBA的所设计的数据库结构。 ;4.4.3 创建与维护索引;4.4.3 创建与维护索引;4.4.4 索引的分类;B*树索引 扇出多,每步读入多,步骤少,适合数据库上的查找。 举例:“性别”、“地区”{“东北”,“西北”,“华北”,…} “地区”中有8个键值,若用B-Tree索引,可能一步查找到叶结点,但每个叶结点对应1/8的记录,要存表中1/8记录的指针。 B*树索引对OR操作没什么益处。;位图索引(Bitmap) 低基数,键值取值范围较少。 对每个值建立一个位图,长度与表中记录个数相同。适合OR操作,修改代价大,应用在修改较少的字段上。;举例 字段sid NUMBER(6),取值类似000001~000099,前四位较少用,此时若从后往前(右左)看,则更快。 正常键: 反向键:针对 B*树上自然词序上下,左右。翻转键,适合使用较少值的情况。另外,对多个用户,通常将顺序打乱,插找树。 当用ORDER BY子句时,需进行后排序。;4.5 唯一性编号;目的:自动产生唯一编号。 举例 发票 invoices(Invoices_no NUMBER(10)) 新来一张发票,为其定义下一个invoices_no SELECT MAX(invoices_no) + 1 AS v_no FROM invoices; INSERT INTO invoices(invoices_no, …) VALUES(v_no,…); 问题: 1、A、B用户同时添加新发票,将可能产生相同的invoices_no,并发处理问题。解决较复杂。 2、无法解决“不断号”。如A申请101中死机,期间B申请了102,101断号。 3、空表时:NVL(MAX(invoice_no), 0) + 1;目的:一般用来作为主键 共享对象,标号发生器不依服于任何一个表。与MSSQL中类似的“自增长字段”不同。 减少应用程序代码 性能提高;创建序列,使用时取值 CREATE SEQUENCE 序列名 [INCREMENT BY 步长] [START WITH 初值] [MAXVALUE 最大值 | NOMAXVALUE] [MINVALUE 最小值 | NOMINVALUE] [CYCLE | NOCYCLE] [CACHE 缓存值数目| NOCACHE] INCREMENT BY 步长:序列号间隔,可为正或负整数,不可为0。缺省升序,为1。 START WITH 初值:第一个序列号。缺省为0。 MAXVALUE 最大值:可生成的最大值。 NOMAXVALUE:升序最大值1027,降序最大值-1。 ;创建序列,使用时取值 CREATE SEQUENCE 序列名 [INCREMENT BY 步长] [START WITH 初值] [MAXVALUE 最大值 | NOMAXVALUE] [MINVALUE 最小值 | NOMINVALUE] [CYCLE | NOCYCLE] [CACHE 缓存值数目| NOCACHE] MINVALUE 最小值:序列的最小值。 NOMINVALUE:升序最小值1,降序最小值-1026。 NOCYCLE:累加到头后不循环,报错,手工恢复值。 CACHE 缓存值数目:预先分配个值到缓存中,加速。;修改序列 ALTER SEQUENCE 序列名 [INCREMENT BY 步长] [MAXVALUE 最大值 | NOMAXVALUE ] [MINVALUE 最小值 | NOMINVALUE]; 修改未来序列值的增量。 设置或撤消最小值或最大值。 改变缓冲序列的数目。 可以ALTER除初始值以外的所有参数,如果想要改变初始值,必须DROP后重新CREATE。;删除序列 DROP SEQUENCE 序列名;

您可能关注的文档

文档评论(0)

dmdt5055 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档