Oracl 编程培训.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle 编程与优化 客服定制部 Contents 使用索引 SQL编程 数据库设计 现网数据库操作 使用索引:建立索引的原则(1) 1、索引字段建议建立NOT NULL约束(is null or is not null是无法用到索引的); 2、表的主键、外键必须有索引; 3、数据量超过1000的表、查询出总行数2%到4%行的表应该有索引; 4、经常与其他表进行连接的表,在连接字段上应该建立索引; 5、经常出现在Where子句中的字段且过滤性很强的,特别是大表的字段,应该建立索引; 6、可选择性高的关键字 ,应该建立索引; 7、可选择性低的关键字,但数据的值分布差异很大时,选择性数据比较少时仍然可以利用索引提高效率; 使用索引:建立索引的原则(2) 8、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替: A、正确选择复合索引中的第一个字段,一般是选择性较好的且在where子句中常用的字段上; B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引; C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引; D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段; E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引; 9、频繁DML的表,不要建立太多的索引; 10、不要将那些频繁修改的列作为索引列; 使用索引:合理的索引(1) 原则如下: 首先,看是否用上了索引。对于该使用索引而没有用上索引的SQL语句,应该想办法用上索引,避免全表扫描 。(特别注意索引列的运算) 其次,看是否用上了合理的索引,特别是复杂的SQL语句,当其中Where子句包含多个带有索引的字段时,更应该注意索引的选择是否合理。错误的索引不仅不会带来性能的提高,相反往往导致性能的降低。(特别注意多个索引时哪种组合最好) 使用索引:合理的索引(2) 针对如何用上合理的索引,以下举ORACLE数据库中的例子进行说明: 1、任何对列的操作都可能导致全表扫描,这里所谓的操作包括数据库函数、计算表达式等等,查询时要尽可能将操作移至等式的右边,甚至去掉函数。如果要使用函数建议创建相应的函数索引。 2、避免不必要的类型转换,要了解“隐藏”的类型转换。 3、增加查询的范围,限制全范围的搜索。 4、索引的效率比较低的情况下,应该用特殊的方法屏蔽该索引,如果字段为数值型的就在表达式的字段名后+ 0,为字符型的就并上空串 。 使用索引:合理的索引(3) 5、在ORACLE优化器无法用上合理索引的情况下,利用HINTS强制指定索引。 7、在ORACLE优化器能用上合理利用索引的情况下,就不需要用HINTS强制指定索引。 8、 使用复合索引且第一个索引字段没有出现在where中时建议用HINTS强制。 9、OLTP中尽量不用位图索引。 10、在删除(delete)操作频繁,建议适当时候需重建索引(rebuild)和碎片整理(coalesce)。 使用索引:合理的索引(4) 11、尽量使用前端匹配的模糊查询(like),以通过使用索引来避免全表扫描。 12、删除无用的索引,避免对执行计划造成负面影响。 13、避免在索引列上使用IS NULL 和 IS NOT NULL。 14、正确使用组合索引,SQL语句在使用复合索引时,与该复合索引字段的组合顺序有关。 使用索引:常用优化器提示 FULL表示对表选择全表扫描的访问方法 /*+ FULL ( [table_name]) */ INDEX表示对指定表选择索引扫描的访问方法 /*+INDEX (table_name [index]) */ NO_INDEX表示对指定表禁止选择索引访问方法 /*+NO_INDEX (table_name[index])*/ AND-EQUAL表示要进行执行规则的选择。使几个但列的索引的扫描合并起来 /*+AND_EQUAL (table_name[index] [inex]…)*/ USE_CONCAT提示强制对查询语句中的WHERE从句的OR条件进行转换,转化成由UNION_ALL集合操作符连接的组合查询 /*+USE_CONCAT*/ /*+ USE_NL (table_name table_name) */、 /*+ USE_MERGE (table_name table_name) */ 、 /*+ USE_HASH (table_name table_name) */ 指定表的连接方式 /*+ LEADING (ta

文档评论(0)

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

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

1亿VIP精品文档

相关文档