《Oracle 编程培训.ppt》由会员分享,可在线阅读,更多相关《Oracle 编程培训.ppt(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、HUAWEI TECHNOLOGIES CO.,LTDHuawei Confidential Security Level:英文标题:40-47pt 副标题:26-30pt字体颜色:反白内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:35-47pt字体:黑体 副标题:24-28pt字体颜色:反白字体:细黑体Oracle 编程与优化编程与优化 客服定制部客服定制部2023/1/13英文目录标题:35-40pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文目录标题:35-40pt 颜色:
2、R153 G0 B0字体:黑体英文目录正文:28-30pt子目录(2-5级):20-30pt 颜色:黑色内部使用字体:FrutigerNext LT Regular外部使用字体:Arial中文目录正文:28-30pt子目录(2-5级):20-30pt 颜色:黑色字体:细黑体 Contents使用索引使用索引SQL编程编程数据库设计数据库设计现网数据库操作现网数据库操作HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 英文标题:32-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial
3、中文标题:30-32pt 颜色:R153 G0 B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt 颜色:黑色内部使用字体:FrutigerNext LT Regular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.使用索引:建立索引的原则(1)l1、索引字段建议建立、索引字段建议建立NOT NULL约束约束(is null or is not null是无法用到索引是无法用到索引的的);l
4、2、表的主键、外键必须有索引;、表的主键、外键必须有索引;l3、数据量超过、数据量超过1000的表、查询出总行数的表、查询出总行数2%到到4%行的表应该有索引;行的表应该有索引;l4、经常与其他表进行连接的表,在连接字段上应该建立索引;、经常与其他表进行连接的表,在连接字段上应该建立索引;l5、经常出现在、经常出现在Where子句中的字段且过滤性很强的,特别是大表的字段,子句中的字段且过滤性很强的,特别是大表的字段,应该建立索引;应该建立索引;l6、可选择性高的关键字、可选择性高的关键字,应该建立索引;,应该建立索引;l7、可、可选择性低的选择性低的关键字关键字,但数据的值分布差异很大时,选择
5、性数据比较少时仍,但数据的值分布差异很大时,选择性数据比较少时仍然可以利用索引提高效率;然可以利用索引提高效率;Page 3HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 英文标题:32-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:30-32pt 颜色:R153 G0 B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt 颜色:黑色内部使用字体:FrutigerNext LT Regular外部使用字体:Arial中文正文:18-20pt子目录(2-
6、5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.使用索引:建立索引的原则(2)l8、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:l A、正确选择复合索引中的第一个字段,一般是选择性较好的且在、正确选择复合索引中的第一个字段,一般是选择性较好的且在where子句中常子句中常用的字段上;用的字段上;l B、复合索引的几个字段是否经常同时以、复合索引的几个字段是否经常同时以AND方式出现在方式出现在W
7、here子句中?单字段子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;l C、如果复合索引中包含的字段经常单独出现在、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字子句中,则分解为多个单字段索引;段索引;l D、如果复合索引所包含的字段超过、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合个,那么仔细考虑其必要性,考虑减少复合的字段;的字段;l E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;、如果既有单字段索引,又有
8、这几个字段上的复合索引,一般可以删除复合索引;l9、频繁、频繁DML的表,不要建立太多的索引;的表,不要建立太多的索引;l10、不要将那些频繁修改的列作为索引列;、不要将那些频繁修改的列作为索引列;Page 4HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 英文标题:32-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:30-32pt 颜色:R153 G0 B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt 颜色:黑色内部使用字体:FrutigerNe
9、xt LT Regular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.使用索引:合理的索引(1)原则如下:原则如下:l首先,看是否用上了索引。对于该使用索引而没有用上索引的首先,看是否用上了索引。对于该使用索引而没有用上索引的SQL语句,语句,应该想办法用上索引应该想办法用上索引,避免全表扫描避免全表扫描。(特别注意索引列的运算特别注意索引列的运算)l其次,看是否用上了合理的索引,特别是复杂的其次,看是否
10、用上了合理的索引,特别是复杂的SQL语句,当其中语句,当其中Where子句包含多个带有索引的字段时,更应该注意索引的选择是否合子句包含多个带有索引的字段时,更应该注意索引的选择是否合理。错误的索引不仅不会带来性能的提高,相反往往导致性能的降低。理。错误的索引不仅不会带来性能的提高,相反往往导致性能的降低。(特别注意多个索引时哪种组合最好)(特别注意多个索引时哪种组合最好)Page 5HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 英文标题:32-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用
11、字体:Arial中文标题:30-32pt 颜色:R153 G0 B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt 颜色:黑色内部使用字体:FrutigerNext LT Regular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.使用索引:合理的索引(2)针对如何用上合理的索引,以下举针对如何用上合理的索引,以下举ORACLE数据库中的例子进行说明:数据库中的例子进行说明:l1、任何对列的
12、操作都可能导致全表扫描,这里所谓的操作包括数据库函、任何对列的操作都可能导致全表扫描,这里所谓的操作包括数据库函数、计算表达式等等,查询时要尽可能将操作移至等式的右边,甚至去数、计算表达式等等,查询时要尽可能将操作移至等式的右边,甚至去掉函数。如果要使用函数建议创建相应的函数索引。掉函数。如果要使用函数建议创建相应的函数索引。l2、避免不必要的类型转换,要了解、避免不必要的类型转换,要了解“隐藏隐藏”的类型转换。的类型转换。l3、增加查询的范围,限制全范围的搜索。、增加查询的范围,限制全范围的搜索。l4、索引的效率比较低的情况下,应该用特殊的方法屏蔽该索引,如果字、索引的效率比较低的情况下,应
13、该用特殊的方法屏蔽该索引,如果字段为数值型的就在表达式的字段名后段为数值型的就在表达式的字段名后+0,为字符型的就并上空串,为字符型的就并上空串。Page 6HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 英文标题:32-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:30-32pt 颜色:R153 G0 B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt 颜色:黑色内部使用字体:FrutigerNext LT Regular外部使用字体:Arial中
14、文正文:18-20pt子目录(2-5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.使用索引:合理的索引(3)l5、在、在ORACLE优化器无法用上合理索引的情况下,利用优化器无法用上合理索引的情况下,利用HINTS强制指强制指定索引。定索引。l7、在、在ORACLE优化器能用上合理利用索引的情况下,就不需要用优化器能用上合理利用索引的情况下,就不需要用HINTS强制指定索引。强制指定索引。l8、使用复合索引且第一个索引字段没有出现在使用复合索引且第一个索引字段没有出现
15、在where中时建议用中时建议用HINTS强制。强制。l9、OLTP中尽量不用位图索引。中尽量不用位图索引。l10、在删除(、在删除(delete)操作频繁,建议适当时候需重建索引)操作频繁,建议适当时候需重建索引(rebuild)和碎和碎片整理片整理(coalesce)。Page 7HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 英文标题:32-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:30-32pt 颜色:R153 G0 B0字体:黑体英文正文:20-22p
16、t子目录(2-5级):18pt 颜色:黑色内部使用字体:FrutigerNext LT Regular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.使用索引:合理的索引(4)l11、尽量使用前端匹配的模糊查询(、尽量使用前端匹配的模糊查询(like),以通过使用索引来避免全表),以通过使用索引来避免全表扫描。扫描。l12、删除无用的索引,避免对执行计划造成负面影响。、删除无用的索引,避免对执行计划造成负面影
17、响。l13、避免在索引列上使用、避免在索引列上使用IS NULL 和和 IS NOT NULL。l14、正确使用组合索引,、正确使用组合索引,SQL语句在使用复合索引时,与该复合索引字语句在使用复合索引时,与该复合索引字段的组合顺序有关。段的组合顺序有关。Page 8HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 英文标题:32-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:30-32pt 颜色:R153 G0 B0字体:黑体英文正文:20-22pt子目录(2-5级
18、):18pt 颜色:黑色内部使用字体:FrutigerNext LT Regular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.使用索引:常用优化器提示 lFULL表示对表选择全表扫描的访问方法表示对表选择全表扫描的访问方法/*+FULL(table_name)*/l INDEX表示对指定表选择索引扫描的访问方法表示对指定表选择索引扫描的访问方法/*+INDEX(table_name index)*/lN
19、O_INDEX表示对指定表禁止选择索引访问方法表示对指定表禁止选择索引访问方法/*+NO_INDEX(table_nameindex)*/lAND-EQUAL表示要进行执行规则的选择。使几个但列的索引的扫描合并起来表示要进行执行规则的选择。使几个但列的索引的扫描合并起来/*+AND_EQUAL(table_nameindex inex)*/lUSE_CONCAT提示强制对查询语句中的提示强制对查询语句中的WHERE从句的从句的OR条件进行转换,转化成条件进行转换,转化成由由UNION_ALL集合操作符连接的组合查询集合操作符连接的组合查询/*+USE_CONCAT*/l/*+USE_NL(ta
20、ble_name table_name)*/、/*+USE_MERGE(table_name table_name)*/、/*+USE_HASH(table_name table_name)*/指定表的连接方式指定表的连接方式l/*+LEADING(table_name)*/指定驱动表指定驱动表Page 9HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 英文标题:32-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:30-32pt 颜色:R153 G0 B0字体:黑体
21、英文正文:20-22pt子目录(2-5级):18pt 颜色:黑色内部使用字体:FrutigerNext LT Regular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.使用索引:确定索引的使用情况l在在oracle9i中,情况会简单得多,因为有一个新得字典视图中,情况会简单得多,因为有一个新得字典视图V$SQL_PLAN存储存储了实际计划,这些计划用于执行共享了实际计划,这些计划用于执行共享SQL区中得语
22、句区中得语句 SQLSELECT SQL_TEXT,ADDRESS,HASH_VALUE FROM V$SQL A WHERE A.SQL_TEXT LIKE%关键字关键字%;SQLSELECT OPERATION,OPTIONS,OBJECT_NAME,COST FROM V$SQL_PLAN WHERE ADDRESS=#ADDRESS AND HASH_VALUE=#HASHVALUE;lEXPLAIN PLAN 预执行计划,两种途径预执行计划,两种途径PL/SQL developer和和SQL PLUS(set autotrace)。Page 10HUAWEI TECHNOLOGIES
23、 CO.,LTD.Huawei Confidential 英文标题:32-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:30-32pt 颜色:R153 G0 B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt 颜色:黑色内部使用字体:FrutigerNext LT Regular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标
24、志放在右上角.使用索引:RBO优化器(1)lFROM中的表名顺序中的表名顺序pRBO(RULE BASED OPTIMIZER)是按照从右到左的顺序处理FROM子句中的表名,如果表所有的连接条件都有索引对应,且索引级别一样的情况下,基础表就是FROM 子句中列在最后的那个表。否则基础表就是FROM 子句中索引级别最高的那个表。pCBO(COST BASED OPTIMIZER),优化器会检查SQL语句中的每个表的物理大小,索引的状态,然后选用花费最低的执行路径。与顺序无关。Page 11HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 英文标题:3
25、2-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:30-32pt 颜色:R153 G0 B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt 颜色:黑色内部使用字体:FrutigerNext LT Regular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.使用索引:RBO优化器(2)lSQL SELECT t.
26、SERLAINUMBER FROM T_WF_TMPTOOTHERPROCESS t,T_WF_DISPOSALSTATUS s WHERE t.GETTYPE=0 n AND T.SERLAINUMBER=S.SERIALNO n AND T.SERVICECLASSID=S.SERVICECLASSID;lRBO Execution Planl-l0 SELECT STATEMENT Optimizer=CHOOSE l1 0 TABLE ACCESS(BY INDEX ROWID)OF T_WF_TMPTOOTHERPROCESS l2 1 NESTED LOOPS l3 2 TABLE
27、 ACCESS(FULL)OF T_WF_DISPOSALSTATUS l4 2 INDEX(RANGE SCAN)OF PK_WF_TMPTOOTHERPROCESS(UNIQUE)Page 12HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 英文标题:32-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:30-32pt 颜色:R153 G0 B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt 颜色:黑色内部使用字体:FrutigerNext LT
28、Regular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.使用索引:RBO优化器(3)l多个平等级别索引使用多个平等级别索引使用p1)当当SQL语句的执行路径可以使用分布在多个表上的多个索引时,语句的执行路径可以使用分布在多个表上的多个索引时,ORACLE会同时使用多个索会同时使用多个索引并在运行时对它们的记录进行合并,引并在运行时对它们的记录进行合并,检索出仅对全部索引有效的记录。检索出仅对全部索引有效
29、的记录。SQL SELECT P.SERIALNO FROM T_PUB_ORGA O,T_WF_PROCESS P WHERE P.DEALSTAFF=101 AND P.DEALDATE=TO_DATE(2008-10-1,YYYY-MM-DD)AND P.SERVICECITY=O.SUPERID AND O.TELCODE=025;RBO Execution Plan-0 SELECT STATEMENT Optimizer=CHOOSE1 0 NESTED LOOPS2 1 TABLE ACCESS(BY INDEX ROWID)OF T_WF_PROCESS3 2 AND-EQUA
30、L4 3 INDEX(RANGE SCAN)OF IX_PROCESS_DEALSTAFF(NON-UNIQUE)5 3 INDEX(RANGE SCAN)OF IX_PROCESS_DEALDATE(NON-UNIQUE)6 1 AND-EQUAL7 6 INDEX(RANGE SCAN)OF IX_ORGA_SUPERID(NON-UNIQUE)8 6 INDEX(RANGE SCAN)OF IX_ORGA_TELCODE(NON-UNIQUE)Page 13HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 英文标题:32-35pt 颜色:R1
31、53 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:30-32pt 颜色:R153 G0 B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt 颜色:黑色内部使用字体:FrutigerNext LT Regular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.使用索引:RBO优化器(4)p2)在在ORACLE选择执行路径时,唯一性索引的等
32、级高于非唯一性索引。选择执行路径时,唯一性索引的等级高于非唯一性索引。然而然而这个规则只有当这个规则只有当WHERE子句中索引列和常量比较才有效。如果索引列和其子句中索引列和常量比较才有效。如果索引列和其他表的索引类相比较。他表的索引类相比较。这种子句在优化器中的等级是非常低的。这种子句在优化器中的等级是非常低的。SQL SELECT O.ORGANAME FROM T_PUB_ORGA O WHERE O.ORGAID=00 -唯一索引 AND O.TELCODE=025;RBO Execution Plan-0 SELECT STATEMENT Optimizer=CHOOSE1 0 TA
33、BLE ACCESS(BY INDEX ROWID)OF T_PUB_ORGA2 1 INDEX(UNIQUE SCAN)OF PK_ORGA(UNIQUE)Page 14HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 英文标题:32-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:30-32pt 颜色:R153 G0 B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt 颜色:黑色内部使用字体:FrutigerNext LT Regular外部使用字体
34、:Arial中文正文:18-20pt子目录(2-5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.使用索引:RBO优化器(5)p3)如果不同表中两个相同等级的索引将被引用,如果不同表中两个相同等级的索引将被引用,FROM子句中表的顺序将决定哪个会子句中表的顺序将决定哪个会被率先使用。被率先使用。FROM子句中最后的表的索引将有最高的优先级。子句中最后的表的索引将有最高的优先级。SQL SELECT P.SERIALNO FROM T_PUB_ORGA O,T_WF_PR
35、OCESS P WHERE P.DEALSTAFF=101 AND P.SERVICECITY=O.ORGAID AND O.TELCODE=025;RBO Execution Plan-0 SELECT STATEMENT Optimizer=CHOOSE1 0 NESTED LOOPS2 1 TABLE ACCESS(BY INDEX ROWID)OF T_WF_PROCESS3 2 INDEX(RANGE SCAN)OF IX_PROCESS_DEALSTAFF(NON-UNIQUE)4 1 TABLE ACCESS(BY INDEX ROWID)OF T_PUB_ORGA5 4 IND
36、EX(UNIQUE SCAN)OF PK_ORGA(UNIQUE)Page 15HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 英文标题:32-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:30-32pt 颜色:R153 G0 B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt 颜色:黑色内部使用字体:FrutigerNext LT Regular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt 颜色:黑色字体:细黑体 配
37、色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.使用索引:RBO优化器(6)l多个不平等级别索引使用多个不平等级别索引使用当WHERE子句中有索引列,ORACLE不能合并它们,ORACLE将用范围比较。就是选择级别高的索引。SQL SELECT P.SERIALNO FROM T_WF_PROCESS P WHERE P.DEALSTAFF=101 AND P.DEALDATE=TO_DATE(2008-10-1,YYYY-MM-DD);RBO Execution Plan-0 SELECT STATEMENT
38、 Optimizer=CHOOSE 1 0 TABLE ACCESS(BY INDEX ROWID)OF T_WF_PROCESS 2 1 INDEX(RANGE SCAN)OF IX_PROCESS_DEALSTAFF(NON-UNIQUE )Page 16HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 英文标题:32-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:30-32pt 颜色:R153 G0 B0字体:黑体英文正文:20-22pt子目录(2-5级):18
39、pt 颜色:黑色内部使用字体:FrutigerNext LT Regular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.使用索引:RBO优化器(7)l分区表索引分区表索引 分区表的优化器都会选择CBO方式,由于9I中数据未分析,所以得到的执行计划就不对,一般这种情况,就需要加HINT;由于11g中数据分析准确,所以得到的执行计划就好,一般不需要加HINT。SQL SELECT A.Servicetitle
40、 FROM T_WF_DISPOSALSTATUSHIS A-数据有10万条 WHERE A.SERIALNO=2008101400001 AND A.MONTHDAY=1014 AND A.ACCEPTTIME=TO_DATE(2008-10-14,YYYY-MM-DD)AND A.ACCEPTTIME SELECT /*+INDEX(A PK_WF_DISPSHIS)*/A.Servicetitle l FROM T_WF_DISPOSALSTATUSHIS A-数据有数据有10万条万条 l WHERE A.SERIALNO=2008101400001 AND A.MONTHDAY=101
41、4 l AND A.ACCEPTTIME=TO_DATE(2008-10-14,YYYY-MM-DD)l AND A.ACCEPTTIME=0127 AND A.PARTID=TO_DATE(2009-03-01,YYYY-MM-DD)AND ACCEPTTIME=0301 AND MONTHDAY=0302Page 21HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 英文标题:32-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:30-32pt 颜色:R153 G0
42、 B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt 颜色:黑色内部使用字体:FrutigerNext LT Regular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.SQL编程(4)l含有多表的含有多表的SQL语句,必须明确指定各表的连接条件,以避免产生迪卡语句,必须明确指定各表的连接条件,以避免产生迪卡尔积。尔积。select a.column2,b.column2,c.column2
43、 from t_tablename1 a,t_tablename2 b,t_tablename3 c where a.column1=b.column1 and c.column1 value;l在执行频度高,又含有排序操作的在执行频度高,又含有排序操作的SQL语句中,建议使用索引来避免排语句中,建议使用索引来避免排序操作。序操作。l禁止对禁止对VARCHAR(2000)之类的大字段值进行之类的大字段值进行ORDER BY、DISTINCT、GROUP BY、UNION之类的操作。之类的操作。Page 22HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confident
44、ial 英文标题:32-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:30-32pt 颜色:R153 G0 B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt 颜色:黑色内部使用字体:FrutigerNext LT Regular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.SQL编程(5)l尽量使用一个尽量使
45、用一个SQL处理处理【示例】1不建议的写法:select count(*)from t_tablename where column1 5000;推荐写法:select count(case when column1 5000 then 1 else null end)from t_tablename;Page 23HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 英文标题:32-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:30-32pt 颜色:R153 G0 B0
46、字体:黑体英文正文:20-22pt子目录(2-5级):18pt 颜色:黑色内部使用字体:FrutigerNext LT Regular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.SQL编程(6)【示例示例】2l不正确的方式:不正确的方式:用plsql写一个cursor,一条条从源表中读记录插入到目标表中。l正确的方式:正确的方式:Insert into othertab select*from orgta
47、b where cond0【示例示例】3 正确的方式正确的方式Update tab set.Where.Returning Page 24HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 英文标题:32-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:30-32pt 颜色:R153 G0 B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt 颜色:黑色内部使用字体:FrutigerNext LT Regular外部使用字体:Arial中文正文:18-20p
48、t子目录(2-5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.SQL编程(7)lSQL语句的语句的WHERE子句中避免使用子句中避免使用IN操作操作 错误的用法:SELECT SOME_FIELD FROM TABLE1 WHERE FIELD1 IN(SELECT FIELD2 FROM TABLE2 )正确的用法:SELECT T1.SOME_FIELD -无重复记录 FROM TABLE1 T1,TABLE2 T2 WHERE T1.FIELD1=T2.FIEL
49、D2 或SELECT SOME_FIELD -有重复记录 FROM TABLE1 T1 WHERE EXISTS(SELECT 1 FROM TABLE2 T2 WHERE T2.FIELD2=T1.FIELD1 )Page 25HUAWEI TECHNOLOGIES CO.,LTD.Huawei Confidential 英文标题:32-35pt 颜色:R153 G0 B0内部使用字体:FrutigerNext LT Medium外部使用字体:Arial中文标题:30-32pt 颜色:R153 G0 B0字体:黑体英文正文:20-22pt子目录(2-5级):18pt 颜色:黑色内部使用字体:
50、FrutigerNext LT Regular外部使用字体:Arial中文正文:18-20pt子目录(2-5级):18pt 颜色:黑色字体:细黑体 配色参考方案:建议同一页面内不超过四种颜色,以下是组配色方案,同一页面内只选择一组使用。(仅供参考)客户或者合作伙伴的标志放在右上角.SQL编程(8)lSQL语句的语句的WHERE子句中严禁使用子句中严禁使用NOT IN操作。操作。(not in 是不能利用索引的)是不能利用索引的)错误的用法:SELECT SOME_FIELD FROM TABLE1 WHERE FIELD1 NOT IN(SELECT FIELD2 FROM TABLE2 )正