Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

1

好友

29

主题
1#
发表于 2013-1-17 14:43:45 | 查看: 3529| 回复: 3
本帖最后由 张沛 于 2013-1-17 15:13 编辑
  1. sql语句中存在外连接是不是就不可能避免全表扫描了?
  2. 例子explain plan for (
  3. select AVT.tax_code,AVT.vat_tax_id,CTL.org_id
  4. from ar_vat_tax_all AVT,ra_customer_trx_lines_all CTL
  5. where  AVT.vat_tax_id(+) = CTL.vat_tax_id                        
  6. AND nvl(AVT.org_id(+),-99) = nvl(CTL.org_id,-99)
  7. )

  8. 1         
  9. 2        ----------------------------------------------------------------------------------------
  10. 3        | Id  | Operation             | Name                          | Rows  | Bytes | Cost (%CPU)|
  11. 4        ----------------------------------------------------------------------------------------
  12. 5        |   0 | SELECT STATEMENT      |                           |  1693K|    45M| 23572   (2)|
  13. 6        |*  1 |  HASH JOIN RIGHT OUTER|                           |  1693K|    45M| 23572   (2)|
  14. 7        |   2 |     TABLE ACCESS FULL   | AR_VAT_TAX_ALL_B          |    14 |   266 |     5   (0)|
  15. 8        |   3 |     TABLE ACCESS FULL   | RA_CUSTOMER_TRX_LINES_ALL |  1693K|    14M| 23549   (2)|
  16. 9        ----------------------------------------------------------------------------------------
  17. 10         
  18. 11        Predicate Information (identified by operation id):
  19. 12        ---------------------------------------------------
  20. 13         
  21. 14           1 - access("AVT"."VAT_TAX_ID"(+)="CTL"."VAT_TAX_ID" AND
  22. 15                      NVL("AVT"."ORG_ID"(+),(-99))=NVL("CTL"."ORG_ID",(-99)))
  23. 16         
  24. 17        Note
  25. 18        -----
  26. 19           - 'PLAN_TABLE' is old version
  27. 注:avt表14行
  28. ctl表170万行
  29. 其中select vat_tax_id,org_id from ar_vat_tax_all 返回数据
  30.       vat_tax_id     org_id
  31. 1        10003        103
  32. 2        10005        103
  33. 3        10007        103
  34. 4        10061        136
  35. 5        10063        136
  36. 6        10101        103
  37. 7        10021        136
  38. 8        10023        136
  39. 9        10009        104
  40. 10        10011        104
  41. 11        10013        104
  42. 12        10015        109
  43. 13        10017        109
  44. 14        10019        109
复制代码
2#
发表于 2013-1-17 14:51:44
数据库10.2,olap

回复 只看该作者 道具 举报

3#
发表于 2013-1-17 17:59:37
sql语句中存在外连接是不是就不可能避免全表扫描了?==》 不是, 只不过你这里并没有什么好的谓词,全表+HASH 很合理

回复 只看该作者 道具 举报

4#
发表于 2013-1-18 08:23:18
Maclean Liu(刘相兵 发表于 2013-1-17 17:59
sql语句中存在外连接是不是就不可能避免全表扫描了?==》 不是, 只不过你这里并没有什么好的谓词,全表+HA ...

哦,晚上也看了一些帖子,是我理解错了,我以为只要是外连接就会造成全表扫描,学习了。

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-26 03:26 , Processed in 0.082230 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569