ITPub博客

首页 > 数据库 > Oracle > SQL语句优化

SQL语句优化

原创 Oracle 作者:bigbear1122 时间:2010-12-21 10:18:02 0 删除 编辑

1。 SQL语句;2。 Explain ; 3。 优化

[@more@]

1。 SQL语句

SELECT c.uuid , c.c_name
FROM gsims.b_contract c, gsims.b_unitmessage b
WHERE c.c_codeid = b.uuid
AND TO_CHAR (C.D_DATE_INK, 'yyyymmdd') BETWEEN '20101020' AND '20101120'
AND b.unitcode = '008542496-1';

注:这是一个例子,不代表实际意义。

但是通过这个例子,基本理清楚了SQL 语句优化的步骤方法。

2。 Explain SQL

(1). 优化

(2). 执行计划

先说执行计划。执行计划,SQL的执行路径。

优化,就是告诉SQL怎么走最快的路径。

Plan
SELECT STATEMENT ALL_ROWS Cost : 10 Bytes : 53 Cardinality : 1
5 NESTED LOOPS Cost : 10 Bytes : 53 Cardinality : 1
2 TABLE ACCESS BY INDEX ROWID GSIMS.B_UNITMESSAGE Cost : 0 Bytes : 17 Cardinality : 1
1 INDEX UNIQUE SCAN GSIMS.IDX_UNITCODE "B"."UNITCODE"='008542496-1' Cost : 0 Cardinality : 1
4 TABLE ACCESS BY INDEX ROWID GSIMS.B_CONTRACT TO_CHAR(INTERNAL_FUNCTION("C"."D_DATE_INK"),'yyyymmdd')>='20101020' AND TO_CHAR(INTERNAL_FUNCTION("C"."D_DATE_INK"),'yyyymmdd')<='20101120' Cost : 10 Bytes : 36 Cardinality : 1
3 INDEX RANGE SCAN GSIMS.INDEX_CONTRACT_UNITUUID "C"."C_CODEID"="B"."UUID" Cost : 2 Cardinality : 20

3。 优化

优化需要改变下思路。

传统的SQL写法,是面向结果的。

优化者换个思路看SQL。对于优化的人来说,SQL是面向过程、

面向集合的。

所谓的优化一定是针对具体业务的,纯粹为优化而优化,效果

不一定好到哪里去。

改变下上面语句的执行路径,但是不一定是最优化的例子。

SQL:

SELECT /*+ordered*/ c.uuid , c.c_name
FROM gsims.b_contract c, gsims.b_unitmessage b
WHERE c.c_codeid = b.uuid
AND TO_CHAR (C.D_DATE_INK, 'yyyymmdd') BETWEEN '20101020' AND '20101120'
AND b.unitcode = '008542496-1';

Explain :

Plan
SELECT STATEMENT ALL_ROWS Cost : 3,455 Bytes : 53 Cardinality : 1
4 NESTED LOOPS Cost : 3,455 Bytes : 53 Cardinality : 1
1 TABLE ACCESS FULL GSIMS.B_CONTRACT TO_CHAR(INTERNAL_FUNCTION("C"."D_DATE_INK"),'yyyymmdd')>='20101020' AND TO_CHAR(INTERNAL_FUNCTION("C"."D_DATE_INK"),'yyyymmdd')<='20101120' Cost : 3,454 Bytes : 73,044 Cardinality : 2,029
3 TABLE ACCESS BY INDEX ROWID GSIMS.B_UNITMESSAGE "C"."C_CODEID"="B"."UUID" Cost : 0 Bytes : 17 Cardinality : 1
2 INDEX UNIQUE SCAN GSIMS.IDX_UNITCODE "B"."UNITCODE"='008542496-1' Cost : 0 Cardinality : 1

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24617594/viewspace-1043400/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论
  • 博文量
    2
  • 访问量
    914