sql优化常用的15种方法,SQL优化方法

sql优化常用的15种方法,SQL优化方法,SQL语句优化方法30例(推荐) 在SQL语句优化过程中,我们经常使用提示。本文总结了Oracle提示在SQL优化过程中的使用,以提高效率。 1./* ALL_ROWS*/表示对语句块选择基于开销的优化方法,获得最佳吞吐量,使资源消耗最小。例如:select/* all _ rows */emp _ no,emp _ nam,dat _ in from bsempms其中emp _ no=' scott2./* FIRST_ROWS*/表示对语句块选择基于开销的优化方法,获得最佳响应时间,使资源消耗最小。例如:select/* first _ rows */emp _ no,emp _ nam,dat _ in from bsempms其中emp _ no=' scott 3./* CHOOSE*/表示如果数据字典中有访问表的统计,将基于代价优化方法,获得最佳吞吐量;说明如果数据字典中没有访问表的统计信息,将基于规则开销的优化方法;示例:select/* choose */EMP _ no,EMP _ Nam,dat _ in from bsempms其中EMP _ no=' Scott 4./* RULE*/指示为语句块选择基于规则的优化方法。例如:select/* rule */emp _ no,emp _ nam,dat _ in from bsempms其中emp _ no=' scott 5./* FULL(TABLE)*/表示表格的全局扫描方法。例如:select/* full (a) */emp _ no,emp _ nam from bsempms a其中emp _ no=' scott 6./* ROWID(TABLE)*/提示明确表示根据ROWID访问指定的表。例如:select/* rowid(BSE mpms)*/* from BSE mpms其中rowid=' aaaaaaaaaa '和EMP _ no=' Scott 7./* CLUSTER(TABLE)*/提示明确指出了指定表的集群扫描的访问方式,只对集群对象有效。例如:select/* cluster */BSE mpms . EMP _ no,dpt _ no from bsempms,bsdptms其中dpt _ no=' tec304 '和bsemps.dpt _ no。 8./* INDEX(TABLE INDEX_NAME)*/表示表选择索引的扫描方式。例如:select/* index (bsempms sex _ index)使用sex _ index因为很少有男性bsempms */from bsempms其中sex=' m 9./* index _ ASC(table index _ name)*/表示为表选择升序索引的扫描方法。例如:select/* index _ ASC(BSE mpms PK _ BSE mpms)*/from BSE mpms其中DPT _ no=' Scott 10./* INDEX_COMBINE*/为指定的表选择位图访问路径。如果INDEX_COMBINE中没有提供索引作为参数,将选择位图索引的布尔组合。例如:select/* index _ combine(BSE PMS sal _ bmhiredate _身体质量指数)*/* from BSE PMS where sal 500000 and hiredate sysdate 1./* index _ join(table index _ name)*/Prompt指定命令优化器使用index作为访问路径。例如:select/* index _ join(BSE mpms sal _ hmihiredate _身体质量指数)*/sal,hiredate from BSE mpms where sal 60000; 12./* index _ desc(table index _ name)*/指示为表选择降序索引的扫描方法。例如:select/* index _ desc(BSE mpms PK _ BSE mpms)*/from BSE mpms其中DPT _ no=' Scott 13./* index _ FFS(table index _ name)*/对指定表执行快速全索引扫描而不是全表扫描的方法。例如:select/* index _ FFS(BSE mpms in _ empnam)*/* from BSE mpms其中DPT _ no=' tec305 14./* add _ equal表index _ nam1,index _ nam2,*/提示明确选择执行计划,并结合多个单列索引的扫描。例如:select/* index _ FFS(BSE PMS in _ DPT no,in _ empno,in _ sex) */* from bsbs 15./* USE_CONCAT*/将查询中WHERE之后的OR条件转换为UNION ALL的组合查询。例如:select/* use _ concat */* from BSE PMS其中DPT _ no=' TDC 506 ',sex=' m16./* NO_EXPAND*/对于WHERE之后的or或IN-LIST查询语句,NO_EXPAND会阻止它根据优化器展开。例如:select/* no _ expand */* from BSE PMS其中DPT _ no=' TDC 506 ',sex=' m 17./* NOWRITE*/禁止重写查询块的查询。 18./* REWRITE*/您可以将视图作为参数。 19./* MERGE(TABLE)*/可以相应地合并视图的查询。例如:select/* merge (v) */a.emp _ no,a.emp _ nam,B . DPT _ NO FROM BSE mpms A(seletdt _ NO,AVG(SAL)AS AVG _ SAL FROM BSE mpms B GROUP BY DPT _ NO)V其中A.DPT_NO=V.DPT_NO和A . SALV.AVG _ SAL 20./*否_合并(表格)*/对于有可合并的视图不再合并。例如:SELECT /* NO_MERGE(V) */A.EMP_NO,A.EMP_NAM,B . DPT _ NO FROM BSE mpms A(SELECT DPT _ NO,AVG(SAL)AS AVG _ SAL FROM BSE mpms B GROUP BY DPT _ NO)V其中A.DPT_NO=V.DPT_NO和答:萨尔。萨尔AVG 21./*已订购*/根据表出现在从中的顺序,已订购使神谕依此顺序对其连接。例如:从表1 A,表2 B,表3摄氏度中选择/* ORDERED*/A .列1,B .列2,C .列3其中A.COL1=B.COL1,B . COL1=C . COL1 22./* USE_NL(TABLE)*/将指定表与嵌套的连接的行源进行连接,并把指定表作为内部表。例如:SELECT/* ORDERED USE _ NL(BSE mpms)*/BSD ptms .DPT_NO,BSEMPMS .EMP_NO,BSEMPMS .BSE PMS中的EMP_NAM,BSDPTMS其中BSEMPMS .DPT_NO=BSDPTMS .DPT _ NO 23./* USE_MERGE(TABLE)*/将指定的表与其他行源通过合并排序连接方式连接起来。例如:SELECT/* USE _ MERGE(BSE PMS,BSDPTMS)*/* FROM BSE PMS,BSDPTMS WHERE BSEMPMS .DPT_NO=BSDPTMS .DPT _ NO 24./*使用哈希(表)*/将指定的表与其他行源通过哈希连接方式连接起来。例如:SELECT/* USE _ HASH(BSE PMS,BSDPTMS)*/* FROM BSE PMS,BSDPTMS WHERE BSEMPMS .DPT_NO=BSDPTMS .DPT _ NO 25./*驾驶_地点(表格)*/strong制与神谕所选择的位置不同的表进行查询执行。例如:SELECT/* DRIVING _ SITE(DEPT)*/* FROM BSE mpms,DEPT@BSDPTMS WHERE BSEMPMS .DPT _ NO=部门DPT _ NO 26./*前导(表格)*/将指定的表作为连接次序中的首表。 27./*缓存(表)*/当进行全表扫描时,缓存提示能够将表的检索块放置在缓冲区缓存中最近最少列表LRU的最近使用端例如:从BSE mpms中选择/*完整(BSE mpms)CAHE(BSE mpms)*/EMP _ NAM; 28./* NOCACHE(表)*/当进行全表扫描时,缓存提示能够将表的检索块放置在缓冲区缓存中最近最少列表LRU的最近使用端例如:从BSE mpms中选择/* FULL(BSE mpms)no cahe(BSE mpms)*/EMP _ NAM; 29./*追加*/直接插入到表的最后,可以提高速度100 . insert/* append */到测试1从测试4中选择* 30./* NOAPPEND*/通过在插入语句生存期内停止并行模式来启动常规插入。 insert /* noappend*/到测试1从测试4中选择*

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用sql语句实现查询排序,顺序和倒序的区别,sql按倒序排序
  • 使用sql语句实现查询排序,顺序和倒序的区别,sql按倒序排序,使用SQL语句实现查询排序,顺序和倒序
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 一篇文章带你入门sql编程语句,一篇文章带你入门sql编程题
  • 一篇文章带你入门sql编程语句,一篇文章带你入门sql编程题,一篇文章带你入门SQL编程
  • window无法启动mysql 1067,windows无法启动mysql57服务,错误1053
  • window无法启动mysql 1067,windows无法启动mysql57服务,错误1053,windows无法启动MySQL服务报错1067的解决方法
  • vb中adodb连接数据库,,VB语言使用ADO连接、操作SQLServer数据库教程
  • sql重复记录查询的几种方法有哪些,查询重复记录sql语句
  • sql重复记录查询的几种方法有哪些,查询重复记录sql语句,SQL重复记录查询的几种方法
  • sql语句的各个关键字的解析过程详细总结怎么写,sql语句的各个关键字的解析过程详细总结图
  • sql语句的各个关键字的解析过程详细总结怎么写,sql语句的各个关键字的解析过程详细总结图,SQL语句的各个关键字的解析过程详细总结
  • sql语句游标,sqlserver游标的使用
  • sql语句游标,sqlserver游标的使用,详解SQL游标的用法
  • 留言与评论(共有 条评论)
       
    验证码: