效率优化--并行和强制走索引

SELECT/*+parallel(T 16) parallel(B 16) parallel(D 16)*/
 T.POLICY_NO,
 T.DEPARTMENT_CODE,
 T.PLAN_CODE,
   FROM EPCIS_AUTO_POLICY_BASE_INFO T ,
       EPCIS_AUTO_POLICY_VEHICLE_INFO B,
       EPCIS_AUTO_A_PRE_MID_RESULT D
 WHERE T.POLICY_NO = B.POLICY_NO
   AND T.APPLY_POLICY_NO = D.APPLY_POLICY_NO(+)
   AND T.LAST_BEGIN_DATE >=
       ADD_MONTHS(TRUNC(TO_DATE(‘20151101‘, ‘YYYYMMDD‘), ‘YYYY‘), 9)
   AND T.LAST_BEGIN_DATE <
       LEAST(TO_DATE(‘20151201‘, ‘YYYYMMDD‘),
             ADD_MONTHS(TRUNC(TO_DATE(‘20151101‘, ‘YYYYMMDD‘), ‘YYYY‘), 12))
   AND T.UNDERWRITE_TIME < TO_DATE(‘20151201‘, ‘YYYYMMDD‘)

--强制走索引

seg是表的别名

/*+INDEX(SEG IDX_T_RES_ALLOSEG_ALLOID)*/

时间: 2024-10-26 11:55:15

效率优化--并行和强制走索引的相关文章

mysql 强制走索引

查询是数据库技术中最常用的操作.查询操作的过程比较简单,首先从客户端发出查询的SQL语句,数据库服务端在接收到由客户端发来的SQL语句后, 执行这条SQL语句,然后将查询到的结果返回给客户端.虽然过程很简单,但不同的查询方式和数据库设置,对查询的性能将会有很在的影响. 因此,本文就在MySQL中常用的查询优化技术进行讨论.讨论的内容如:通过查询缓冲提高查询速度:MySQL对查询的自动优化:基于索引的排序:不可达查询的检测和使用各种查询选择来提高性能. 一. 通过查询缓冲提高查询速度 一般我们使用

强制MySQL查询走索引和强制查询不缓存

有些情况下,表中创建了索引但是EXPLAIN的查看执行计划的时候发现并没有走索引.是因为优化器认为该语句不使用索引效率更好. 当然也可以强制走索引.类似: SELECT uid,uname FROM tab_name force index(ind_id); SELECT SQL_NO_CACHE uid,uname FROM tab_name ; 不走逻辑IO,走物理IO.

浅析TPCH对查询Q4的优化-正确改写子查询与强制使用索引优化

1.源查询语句执行计划 EXPLAIN EXTENDED SELECT sql_no_cache O_ORDERPRIORITY, COUNT(*) AS ORDER_COUNT FROM ORDERS WHERE O_ORDERDATE >= DATE '1993-07-01' AND O_ORDERDATE < DATE '1993-07-01' + INTERVAL '3' MONTH AND EXISTS ( SELECT * FROM LINEITEM WHERE L_ORDERKE

(转)as3效率优化

1.改进算法无论对于那一种程序,好的算法总是非常重要的,而且能够极大地提高程序性能,所以任何性能的优化第一步就是从算法或者说程序逻辑的优化开始,检查自己的程序是否有多余的运算,是否在没有必要的时候做了无用功,往往从这些方面就能找到那些导致性能低下的地方. 2.优化细节代码针对细节总是好的,有一些小技巧比如:用 var obj:Object = {}; 要比 var obj:Object = new Object();要好:var arr:Array = []; 要比 var arr:Array

37. SQL -- 页分裂如何解决,在查询中强制使用索引

页分裂: 创建聚集索引时,表格内的数据会按照索引的顺序存储在数据库的数据页面中,当新的数据行插入到数据表中,或更新表中的数据时,SQLServer 必须刷新数据在数据库中的存储位置,这样,就导致索引页中的数据存储方式改变,当页中数据已满的情况下,就将会创建一个新页,并将原有页中的一半数据放入新页中,以挪出空间给新的记录行使用.注:当页分裂的次数较多时,会影响效率. 导致页分裂原因: 当一个数据页达到了8K容量,如果此时发生插入或更新数据的操作,将导致页的分裂(又名页拆分): 有聚集索引的情况下:

索引优化原则及Oracle中索引总结

索引建立原则 确定针对该表的操作是大量的查询操作还是大量的增删改操作. 尝试建立索引来帮助特定的查询.检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引. where语句中不得不对查询列采用函数查询,如upper函数,最好建立相应函数索引: 在SQL语句中经常进行GROUP BY.ORDER BY的字段上建立索引 用于联接的列(主健/外健)上建立索引: 在经常存取的多个列上建立复合索引,但要注意复合索引的建立顺序要按照使用的频度来确定: 尝试建立复合索引来进一步提高系统性能.修

oracle 性能优化操作八: 利用HINT强制指定索引

在ORACLE优化器无法用上合理索引的情况下,利用HINT强制指定索引. 继续"oracle 性能优化操作七"的例子,ORACLE缺省认定,表中列的值是在所有数据行中均匀分布的, 也就是说,在一百万数据量下,每种DisposalCourseFlag值各有12.5万数据行与之对应. 假设SQL搜索条件DisposalCourseFlag=2,利用DisposalCourseFlag列上的索引进行数据搜索效率, 往往不比全表扫描的高,ORACLE因此对索引"视而不见",

sql查询未走索引问题分析之查询数据量过大

前因: 客户咨询,有一个业务sql(代表经常被执行且重要),全表扫描在系统占用资源很高(通过ash报告查询得到信息) 思路: 1.找到sql_text,sql_id 2.查看执行计划 3.查询sql涉及对象的对象数据量,段大小,行数量,where条件列,是否存在索引,列的选择读情况如何 4.总结,优化整改 1.找到sql_text,sql_id 094cmrxrahdy2 SELECT 8~10个列名称(由于设计用户信息,因此部分信息不再详细说明) FROM Prescription WHERE

如何让oracle的select强制走索

大多数情况下,oracle数据库内置的查询优化策略还是很成功的,但偶尔也有糊涂的时候,即使有索引,也会做全表扫描,可以参考以下语句的写法,强制让select语句使用索引. (注意:走索引不一定是最优的,不走索引不一定有问题,具体问题具体分析,看执行计划) 例如: select /*+INDEX(xe emp_postproperty)*/  * from xemployee xe where xe.POSTPROPERTY='1' 格式: 1./*+INDEX(xe emp_postproper