您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 华为Oracle优化
HUAWEITECHNOLOGIESCO.,LTD.英文标题:40-47pt副标题:26-30pt字体颜色:反白内部使用字体:FrutigerNextLTMedium外部使用字体:Arial中文标题:35-47pt字体:黑体副标题:24-28pt字体颜色:反白字体:细黑体2020/2/4Oracle编程与优化客服定制部英文目录标题:35-40pt颜色:R153G0B0内部使用字体:FrutigerNextLTMedium外部使用字体:Arial中文目录标题:35-40pt颜色:R153G0B0字体:黑体英文目录正文:28-30pt子目录(2-5级):20-30pt颜色:黑色内部使用字体:FrutigerNextLTRegular外部使用字体:Arial中文目录正文:28-30pt子目录(2-5级):20-30pt颜色:黑色字体:细黑体Contents•使用索引•SQL编程•数据库设计•现网数据库操作HUAWEITECHNOLOGIESCO.,LTD.HuaweiConfidential英文标题:32-35pt颜色:R153G0B0内部使用字体:FrutigerNextLTMedium外部使用字体:Arial中文标题:30-32pt颜色:R153G0B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt颜色:黑色内部使用字体:FrutigerNextLTRegular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt颜色:黑色字体:细黑体配色参考方案:建议同一页面内不超过四种颜色,以下是9组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.Page3使用索引:建立索引的原则(1)1、索引字段建议建立NOTNULL约束(isnullorisnotnull是无法用到索引的);2、表的主键、外键必须有索引;3、数据量超过1000的表、查询出总行数2%到4%行的表应该有索引;4、经常与其他表进行连接的表,在连接字段上应该建立索引;5、经常出现在Where子句中的字段且过滤性很强的,特别是大表的字段,应该建立索引;6、可选择性高的关键字,应该建立索引;7、可选择性低的关键字,但数据的值分布差异很大时,选择性数据比较少时仍然可以利用索引提高效率;HUAWEITECHNOLOGIESCO.,LTD.HuaweiConfidential英文标题:32-35pt颜色:R153G0B0内部使用字体:FrutigerNextLTMedium外部使用字体:Arial中文标题:30-32pt颜色:R153G0B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt颜色:黑色内部使用字体:FrutigerNextLTRegular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt颜色:黑色字体:细黑体配色参考方案:建议同一页面内不超过四种颜色,以下是9组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.Page4使用索引:建立索引的原则(2)8、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:A、正确选择复合索引中的第一个字段,一般是选择性较好的且在where子句中常用的字段上;B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;9、频繁DML的表,不要建立太多的索引;10、不要将那些频繁修改的列作为索引列;HUAWEITECHNOLOGIESCO.,LTD.HuaweiConfidential英文标题:32-35pt颜色:R153G0B0内部使用字体:FrutigerNextLTMedium外部使用字体:Arial中文标题:30-32pt颜色:R153G0B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt颜色:黑色内部使用字体:FrutigerNextLTRegular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt颜色:黑色字体:细黑体配色参考方案:建议同一页面内不超过四种颜色,以下是9组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.Page5使用索引:合理的索引(1)原则如下:首先,看是否用上了索引。对于该使用索引而没有用上索引的SQL语句,应该想办法用上索引,避免全表扫描。(特别注意索引列的运算)其次,看是否用上了合理的索引,特别是复杂的SQL语句,当其中Where子句包含多个带有索引的字段时,更应该注意索引的选择是否合理。错误的索引不仅不会带来性能的提高,相反往往导致性能的降低。(特别注意多个索引时哪种组合最好)HUAWEITECHNOLOGIESCO.,LTD.HuaweiConfidential英文标题:32-35pt颜色:R153G0B0内部使用字体:FrutigerNextLTMedium外部使用字体:Arial中文标题:30-32pt颜色:R153G0B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt颜色:黑色内部使用字体:FrutigerNextLTRegular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt颜色:黑色字体:细黑体配色参考方案:建议同一页面内不超过四种颜色,以下是9组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.Page6使用索引:合理的索引(2)针对如何用上合理的索引,以下举ORACLE数据库中的例子进行说明:1、任何对列的操作都可能导致全表扫描,这里所谓的操作包括数据库函数、计算表达式等等,查询时要尽可能将操作移至等式的右边,甚至去掉函数。如果要使用函数建议创建相应的函数索引。2、避免不必要的类型转换,要了解“隐藏”的类型转换。3、增加查询的范围,限制全范围的搜索。4、索引的效率比较低的情况下,应该用特殊的方法屏蔽该索引,如果字段为数值型的就在表达式的字段名后+0,为字符型的就并上空串。HUAWEITECHNOLOGIESCO.,LTD.HuaweiConfidential英文标题:32-35pt颜色:R153G0B0内部使用字体:FrutigerNextLTMedium外部使用字体:Arial中文标题:30-32pt颜色:R153G0B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt颜色:黑色内部使用字体:FrutigerNextLTRegular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt颜色:黑色字体:细黑体配色参考方案:建议同一页面内不超过四种颜色,以下是9组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.Page7使用索引:合理的索引(3)5、在ORACLE优化器无法用上合理索引的情况下,利用HINTS强制指定索引。7、在ORACLE优化器能用上合理利用索引的情况下,就不需要用HINTS强制指定索引。8、使用复合索引且第一个索引字段没有出现在where中时建议用HINTS强制。9、OLTP中尽量不用位图索引。10、在删除(delete)操作频繁,建议适当时候需重建索引(rebuild)和碎片整理(coalesce)。HUAWEITECHNOLOGIESCO.,LTD.HuaweiConfidential英文标题:32-35pt颜色:R153G0B0内部使用字体:FrutigerNextLTMedium外部使用字体:Arial中文标题:30-32pt颜色:R153G0B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt颜色:黑色内部使用字体:FrutigerNextLTRegular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt颜色:黑色字体:细黑体配色参考方案:建议同一页面内不超过四种颜色,以下是9组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.Page8使用索引:合理的索引(4)11、尽量使用前端匹配的模糊查询(like),以通过使用索引来避免全表扫描。12、删除无用的索引,避免对执行计划造成负面影响。13、避免在索引列上使用ISNULL和ISNOTNULL。14、正确使用组合索引,SQL语句在使用复合索引时,与该复合索引字段的组合顺序有关。HUAWEITECHNOLOGIESCO.,LTD.HuaweiConfidential英文标题:32-35pt颜色:R153G0B0内部使用字体:FrutigerNextLTMedium外部使用字体:Arial中文标题:30-32pt颜色:R153G0B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt颜色:黑色内部使用字体:FrutigerNextLTRegular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt颜色:黑色字体:细黑体配色参考方案:建议同一页面内不超过四种颜色,以下是9组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.Page9使用索引:常用优化器提示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_nametable_name)*/、/*+USE_MERGE(table_nametable_name)*/、/*+USE_HASH(table_nametable_name)*/指定表的连接方式/*+LEADING(table_name)*/指定驱动表HUAWEITECHNOLOGIESCO.,LTD.HuaweiConfidential英文标题:32-35pt颜色:R153G0B0内部使用字体:FrutigerNextLTMedium外部使用字体:Arial中文标题:30-32pt颜色:R153G0B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt颜色:黑色内部使用字体:FrutigerNextLTRegular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt颜色:黑色字体:细黑体配色参考方案:建议同一页面内不超过四种颜色,以下是9组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.Page10使用索引:确定索引的使用情况在oracle9i中,情况会简单得多,因为有一个新得字典视图V$SQL_PLAN存储了实际计划,这些计划用于执行共享SQL区中得语句SQLSELECTSQL_TEXT,ADDRESS,HASH_VALUEFROMV$SQLAWHEREA.SQL_TEXTLIKE'%关键字%';SQLSELECTOPERATION,OPTION
本文标题:华为Oracle优化
链接地址:https://www.777doc.com/doc-3477172 .html