oracle SQL优化
文章平均质量分 78
wadekobe9
这个作者很懒,什么都没留下…
展开
-
组合索引优化一条SQL
原始SQL,出来的数据为零行,这不是重点,统计信息没有过期,这里不考虑统计信息的问题 分别看下设计到表的行数 select count(*) from t_ho_room_price --3254605 select count(*) from t_ho_order_info --2034996 select count(*) from t_ho_order_s原创 2012-07-03 11:03:39 · 975 阅读 · 0 评论 -
视图融合的例子
今天找到一条5分钟的SQLSQL> explain plan for SELECT orderinfo.order_id, guest_num, guest_name, pnr, orderinfo.order_flow_id, deliverassign.deliver_type_id, deliverassign.deliver_e原创 2012-07-03 16:49:20 · 986 阅读 · 0 评论 -
子查询解嵌套导致SQL变慢
原SQL如下,跑4分钟左右Select Guest_Id, t_To_Order_Tickets.Order_Id, t_To_Order_Info.Contact_Mobile, Guest_Name, Guest_Idno, Departure_Time, Trip_Num, Arrival_原创 2012-07-03 16:17:51 · 3400 阅读 · 0 评论 -
not in和or 出的问题
开发发来一条SQL,出了几行数据,要跑40多秒,让优化下原SQL如下 SQL> explain plan for Select Orderinfo.Order_Id, Guest_Num, Guest_Name, Pnr, Orderinfo.Order_Flow_Id, Orderinfo.Del原创 2012-07-03 14:12:46 · 1000 阅读 · 0 评论 -
删除表的数据来提高SQL效率
今天上午查看em工具,在9点半的时候applications又升到了60去,虽然很快释放,没有引起数据库慢,但是这里还是重视一下。用上午8点到10的快照做成一个awr报告,通过查看 SQL Statistice-SQL ordered by elapsed time,找出排名第一的SQL,Sql如下:---------------------------------------原创 2012-07-03 13:30:17 · 1217 阅读 · 0 评论 -
创建函数索引优化一条SQL
开发发来一条SQL让优化Select Distinct Oi.Customer_Id, Oi.Order_Id, Oi.Create_Time, 1 Type From t_To_Order_Info Oi Left Join t_To_Consign_Pymt_Record Cpr On Oi.Order_Id = Cpr.Order_Id Where 1 = 1 An原创 2012-07-03 11:25:53 · 824 阅读 · 0 评论 -
常用的几种Hints优化一条SQL
环境: oracle 10g R2 Select Count(*) From t_Ho_Order_Statistics --2032946Select Count(*) From t_Ho_Order_Info --2032946其他都是小的维度表统计信息已经检查过了,差不多10天前的(不过我10天前跑过这个SQL,出来的执行计划一样),这里,这里就把注意力集中在两个大表原创 2012-07-03 10:29:20 · 3579 阅读 · 0 评论 -
强制走索引失效的情况
select count(0) from creditguarantee cg where 1=1 and cg.createddate>=to_date('2012-02-23','yyyy-MM-dd') and cg.createddate<=to_date('2012-02-26','yyyy-MM-dd') and原创 2012-07-03 11:16:24 · 1823 阅读 · 0 评论 -
AND_EQUAL和组合索引优化一条SQL
在系统负载高的时候抓出一条SQL,1分23秒左右出152行select a.Case_ID, a.Case_Type_ID, a.Case_Subject, a.Case_Content, a.Create_Employee_ID, a.Case_Create_Time, a.Customer_ID,原创 2012-07-12 14:34:53 · 1045 阅读 · 0 评论 -
查询访问一个表的两个索引
原文地址:http://yangtingkun.itpub.net/post/468/499769经常看到有人提出这样的疑问,我在同一张表上建立了多个索引,为什么Oracle每次都选择一个,而不能同时利用多个索引呢。一般来说,常见的访问同一张表的两个以上索引,存在三种情况,AND-EQUAL、INDEX HASH JOIN和BITMAP INDEX AND/OR。此外,还有一个设计上的转载 2012-07-12 09:39:33 · 2379 阅读 · 0 评论 -
表量子查询优化SQL
开发发来条SQL,7分32秒出236行数据 Select Ot.Guest_Id, Ot.Order_Id, Ot.Guest_Name, Oct.Guest_Name, Ot.Ticket_Price, Oct.Ticket_Price From t_To_Order_Tickets Ot Left Join (Se原创 2012-07-12 09:37:44 · 866 阅读 · 0 评论 -
查看存储过程的执行计划
存储过程没有执行计划,查看的是存储过程中SQL语句的执行计划,这里用10046来看---------------------------------------------------- 创建存储过程Create Or Replace Procedure Lee_Xc(Eno Number) IsBegin Select Empno, Ename, Dname From原创 2012-07-06 11:17:54 · 8596 阅读 · 0 评论 -
反连接的实验
关于反连接的实验:not exists 和not in等都属于反连接------------------------------------------------------------------------------实验1:SQL> Explain plan for Select * from emp 2 where not exists 3 (Select * fro原创 2012-07-06 09:31:34 · 1723 阅读 · 0 评论 -
绑定变量窥探
Bind Peeking是Oracle 9i中引入的新特性,一直持续到Oracle 10g R2。它的作用就是在SQL语句硬分析的时候,查看一下当前SQL谓词的值,以便生成最佳的执行计划。而在oracle 9i之前的版本中,Oracle 只根据统计信息来做出执行计划。一、绑定变量窥探 使用SQL首次运行时的值来生成执行计划。后续再次运行该SQL语句则使用首次执行计划来执行。转载 2012-07-06 11:20:50 · 1106 阅读 · 0 评论 -
增加表连接来优化SQL
Select Ci.Customer_Id, Ci.Customer_Name, Mc.Card_Id, t.Card_Type_Name, f_Getcustomercontactmeans(Ci.Customer_Id) As Cust_Contactmeans From v_Customer_Info Ci Inner Join原创 2012-08-06 17:04:06 · 770 阅读 · 0 评论