- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
优化Oracle库表设计的若干方法(16页),oraclesql优化方法,oracle优化方法,oracle查询优化方法,oracle数据库优化方法,基于oracle的sql优化,oracle优化,oraclesql优化,oracle性能优化,oracle数据库优化
优化Oracle库表设计的若干方法
前言绝大多数的Oracle数据库性能问题都是由于数据库设计不合理造成的,只有少部分问题根植于Database Buffer、Share Pool、Redo Log Buffer等内存模块配置不合理,I/O争用,CPU争用等DBA职责范围上。所以除非是面对一个业已完成不可变更的系统,否则我们不应过多地将关注点投向内存、I/O、CPU等性能调整项目上,而应关注数据库表本身的设计是否合理,库表设计的合理性才是程序性能的真正执牛耳者。合理的数据库设计需要考虑以下的方面:·业务数据以何种方式表达。如一个员工有多个Email,你可以在T_EMPLOYEE表中建立多个Email字段如email_1、email_2、 email_3,也可以创建一个T_EMAIL子表来存储,甚至可以用逗号分隔开多个Email地址存放在一个字段中。·数据以何种方式物理存储。如大表的分区,表空间的合理设计等。·如何建立合理的数据表索引。表索引几乎是提高数据表查询性能最有效的方法,Oracle拥有类型丰富的数据表索引类型,如何取舍选择显得特别重要。本文我们将目光主要聚焦于数据表的索引上,同时也将提及其他两点的内容。通过对一个简单的库表设计实例的分析引出设计中的不足,并逐一改正。考虑到手工编写库表的SQL脚本原始且低效,我们将用目前最流行的库表设计工具PowerDesigner 10来讲述表设计的过程,所以在本文中你还会了解到一些相关的PowerDesigner的使用技巧。一个简单的例子某个开发人员着手设计一个订单的系统,这个系统中有两个主要的业务表,分别是订单基本信息表和订单条目表,这两张表具有主从关系的表,其中T_ORDER是订单主表,而T_ORDER_ITEM是订单条目表。数据库设计人员的设计成果如图 1所示:
图 1 订单主从表ORDER_ID是订单号,为T_ORDER的主键,通过名为SEQ_ORDER_ID的序列产生键值,而ITEM_ID是T_ORDER_ITEM表的主键,通过名为SEQ_ORDER_ITEM的序列产生键值,T_ORDER_ITEM通过ORDER_ID外键关联到T_ORDER表。需求文档指出订单记录将通过以下两种方式来查询数据:·CLIENT + ORDER_DATE+IS_SHPPED:根据客户+订货日期+是否发货条件查询订单及订单条目。·ORDER_DATE+IS_SHIPPED:根据订货日期+是否发货条件查询订单及订单条目。数据库设计人员根据这个要求,在T_ORDER表的CLIENT、 ORDER_DATE及IS_SHPPED三字段上建立了一个复合索引IDX_ORDER_COMPOSITE;在T_ORDER_ITEM为外键 ORDER_ID建立IDX_ORDER_ITEM_ORDER_ID索引。让我们看一下该份设计的最终SQL脚本:/*订单表*/ create table T_ORDER (ORDER_ID NUMBER(10) not null, ADDRESS VARCHAR2(100), CLIENT VARCHAR2(60), ORDER_DATE CHAR(8), IS_SHIPPED CHAR(1), constraint PK_T_ORDER primary key (ORDER_ID));create index IDX_CLIENT on T_ORDER ( CLIENT ASC, ORDER_DATE ASC, IS_SHIPPED ASC);/*订单条目子表*/create table T_ORDER_ITEM ( ITEM_ID NUMBER(10) not null, ORDER_ID NUMBER(10), ITEM VARCHAR2(20), COUNT NUMBER(10), constraint PK_T_ORDER_ITEM primary key (ITEM_ID));create index IDX_ORDER_ITEM_ORDER_ID on T_ORDER_ITEM ( ORDER_ID ASC); alter table T_ORDER_ITEM add constraint FK_T_ORDER__REFERENCE_T_ORDER foreign key (ORDER_ID) references T_ORDER (ORDER_ID);我们承认在ER关系上,这份设计并不存在的缺陷,但却存在以下有待优化的地方:·没有将表数据和索引数据存储到不同的表空间中,而不加区别地将它们存储到同一表空间里。这样,不但会造成I/O竞争,也为数据
您可能关注的文档
- 《统计学原理》教学思路与模式改革的探讨(6页).doc
- 《教育研究方法导论》(_裴娣娜版)课堂笔记(完美打印版)(38页).doc
- “学案导学”课堂教学评价表(3页).doc
- 《小学教育学》复习资料(14页).doc
- 《中学物理教学法》试题(整理)(12页).doc
- _新课程背景下的高中语文课堂教学实效性研究_(23页).doc
- 地理教学设计(2页).doc
- 《中学语文教学法》教案(74页).doc
- 《雪儿》小学语文教学设计(2页).doc
- 【小学语文教学研究】小抄(9页).doc
- 2024-2025学年度广播电视编辑记者通关题库【达标题】附答案详解.docx
- 2024广播电视编辑记者检测卷附参考答案详解(夺分金卷).docx
- 2024-2025学年度广播电视编辑记者考前冲刺练习题【黄金题型】附答案详解.docx
- 2025广播电视编辑记者高频难、易错点题及参考答案详解(最新).docx
- 2024-2025学年度广播电视编辑记者过关检测试卷及1套参考答案详解.docx
- 广播电视编辑记者通关题库及参考答案详解【完整版】.docx
- 2024-2025学年度国家电网招聘考试练习题附参考答案详解【培优B卷】.docx
- 2024年国家电网招聘考试模拟试题及参考答案详解【达标题】.docx
- 浙江宁波市鄞州区财政局招聘编外工作人员笔试模拟试题带答案详解.docx
- 浙江杭州市临平区卫生健康系统招聘82人笔试模拟试题带答案详解.docx
文档评论(0)