设为首页 加入收藏

TOP

SQL优化一例(INListITERATOR)(二)
2014-11-24 02:57:14 来源: 作者: 【 】 浏览:5
Tags:SQL 优化 INListITERATOR
t "_use_nosegment_indexes"=true; Session altered. 然后使用explain plan for 来解析执行计划
explain plan for SELECT /*+ index(a billgrant_class ) */ N多个列
 FROM shcvms.bill_grant_check a , shcvms.bill_class b 
WHERE a.regist_date IS NOT NULL AND 
a.bill_class = b.bill_class 
AND a.bill_class IN (......N多常量 )

我们看看执行计划
PLAN_TABLE_OUTPUT
-----------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 2116188717

--------------------------------------------------------------------------------------------------
| Id  | Operation		      | Name		 | Rows  | Bytes | Cost (%CPU)| Time	 |
--------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT	      | 		 |  6452K|   553M|   207   (1)| 00:00:03 |
|   1 |  MERGE JOIN		      | 		 |  6452K|   553M|   207   (1)| 00:00:03 |
|   2 |   INLIST ITERATOR	      | 		 |	 |	 |	      | 	 |
|*  3 |    TABLE ACCESS BY INDEX ROWID| BILL_GRANT_CHECK |  7321K|   453M|   203   (1)| 00:00:03 |
|*  4 |     INDEX RANGE SCAN	      | BILLGRANT_CLASS  |  7321K|	 |    16   (0)| 00:00:01 |
|*  5 |   SORT JOIN		      | 		 |   206 |  5150 |     4  (25)| 00:00:01 |
|*  6 |    TABLE ACCESS FULL	      | BILL_CLASS	 |   206 |  5150 |     3   (0)| 00:00:01 |
--------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   3 - filter("A"."REGIST_DATE" IS NOT NULL)
   4 - access("A"."BILL_CLASS"='1001' OR "A"."BILL_CLASS"='1093' OR
	      "A"."BILL_CLASS"='1096' OR "A"."BILL_CLASS"='1097' OR "A"."BILL_CLASS"='1098' OR
	      "A"."BILL_CLASS"='1099' OR "A"."BILL_CLASS"='1100' OR "A"."BILL_CLASS"='1302' OR

看Cost。从之前的151k 降到了现在的207,速度提升为原来的1/1000。 在统计信息正确的情况下 cost是具有参考价值的(不正确的话就别看cost了)

现在可以提申请了。真实创建这个索引。

一个简单的例子完事,(虽然这么简单的,不想往这贴,但是我blog中“Oracle优化之SQL 优化”分支太空了,写点东西充实一下它)

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Sql Server按索引名查找所属表名 下一篇做为程序员对sql进行的性能优化

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C语言结构体怎么直接 (2025-12-24 17:19:44)
·为什么指针作为c语言 (2025-12-24 17:19:41)
·如何较为深入的理解c (2025-12-24 17:19:38)
·Announcing October (2025-12-24 15:18:16)
·MySQL有什么推荐的学 (2025-12-24 15:18:13)