成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle 10g中的SQL優化亮點

數據庫 Oracle
Oracle 10g數據庫關鍵目標就是降低管理開銷,再就是提高性能,Oracle 10g數據庫中的SQL優化問題大家都了解嗎?下文中將就這個問題給出詳細的解析。

Oracle 10g中的SQL優化亮點:

  1、優化器默認為CBO,OPTIMIZER_MODE默認值為ALL_ROWS。不再使用古老的RBO模式,但RULE、CHOOSE并沒有徹底消失,有些時候仍然可以作為我們調試的工具。

  2、CPU Costing的計算方式現在默認為CPU+I/O兩者之和.可通過DBMS_XPLAN.DISPLAY_CURSOR觀察更為詳細的執行計劃。

  3、增加了幾個有用SQL Hints:

  INDEX_SS[[@block] tabs [inds]],INDEX_SS_ASC,INDEX_SS_DESC;SS為SKIP SCAN的縮寫。skip scan以前討論的很多。

  NO_USE_N[[@block] tabs],NO_USE_HAHS,NO_USE_MERGE,NO_INDEX_FFS,NO_INDEX_SS,NO_STAR_TRANSFORMATION,NO_QUERY_TRANSFORMATION.

  這幾個HINT不用解釋,一看就知道目的是什么。

  USE_NL_WITH_INDEX([@block] tabs [index]):這個提示和Nested Loops有關,通過提示我們可以指定Nested Loops循環中的內部表,也就是開始循環連接其他表的表。CBO是否會執行取決于指定表是否有索引鍵關聯。

  QB_NAME(@blockname) 這個提示可以給某個查詢定義一個name,并且可以在其他hints中使用這個name,并且將這個hints作用到這個name對應的查詢中.其實從10G開始,Oracle對一些特定的查詢自動使用queryblockname

  4、10G中支持在hint中使用queryblockname

  select * from a1 where id in (select /*+ qb_name(sub1) */ id

  from a1 where id in (2,10,12));

  Execution Plan

  ----------------------------------------------------------

  Plan hash value: 173249654

  -----------------------------------------------------------------------------------------

  | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

  -----------------------------------------------------------------------------------------

  | 0 | SELECT STATEMENT | | 2 | 34 | 3 (34)| 00:00:01 |

  | 1 | TABLE ACCESS BY INDEX ROWID| A1 | 1 | 14 | 1 (0)| 00:00:01 |

  | 2 | NESTED LOOPS | | 2 | 34 | 3 (34)| 00:00:01 |

  | 3 | SORT UNIQUE | | 2 | 6 | 1 (0)| 00:00:01 |

  | 4 | INLIST ITERATOR | | | | | |

  |* 5 | INDEX RANGE SCAN | IDX_A1_ID | 2 | 6 | 1 (0)| 00:00:01 |

  |* 6 | INDEX RANGE SCAN | IDX_A1_ID | 1 | | 0 (0)| 00:00:01 |

  -----------------------------------------------------------------------------------------

  ---------------

  select * from a1 where id in (select /*+ qb_name(sub1) full(@sub1 a1) */ id

  from a1 where id in (2,10,12));

  Plan hash value: 1882950619

  -----------------------------------------------------------------------------------------

  | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

  -----------------------------------------------------------------------------------------

  | 0 | SELECT STATEMENT | | 2 | 34 | 17 (6)| 00:00:01 |

  | 1 | TABLE ACCESS BY INDEX ROWID| A1 | 1 | 14 | 1 (0)| 00:00:01 |

  | 2 | NESTED LOOPS | | 2 | 34 | 17 (6)| 00:00:01 |

  | 3 | SORT UNIQUE | | 2 | 6 | 15 (0)| 00:00:01 |

  |* 4 | TABLE ACCESS FULL | A1 | 2 | 6 | 15 (0)| 00:00:01 |

  |* 5 | INDEX RANGE SCAN | IDX_A1_ID | 1 | | 0 (0)| 00:00:01 |

  -----------------------------------------------------------------------------------------

  -----------

  修改成錯誤的queryblockname

  select * from a1 where id in (select /*+ qb_name(sub1) full(@sub2 a1) */ id from a1 where id in (2,10,12));

  Execution Plan

  ----------------------------------------------------------

  Plan hash value: 173249654

  -----------------------------------------------------------------------------------------

  | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

  -----------------------------------------------------------------------------------------

  | 0 | SELECT STATEMENT | | 2 | 34 | 3 (34)| 00:00:01 |

  | 1 | TABLE ACCESS BY INDEX ROWID| A1 | 1 | 14 | 1 (0)| 00:00:01 |

  | 2 | NESTED LOOPS | | 2 | 34 | 3 (34)| 00:00:01 |

  | 3 | SORT UNIQUE | | 2 | 6 | 1 (0)| 00:00:01 |

  | 4 | INLIST ITERATOR | | | | | |

  |* 5 | INDEX RANGE SCAN | IDX_A1_ID | 2 | 6 | 1 (0)| 00:00:01 |

  |* 6 | INDEX RANGE SCAN | IDX_A1_ID | 1 | | 0 (0)| 00:00:01 |

  -----------------------------------------------------------------------------------------

  如果指定的queryblockname未定義,還是保持以前的執行計劃,證明queryblockname起作用了.

  5、新的hints.spread_no_analysis、spread_min_analysis 用于優化analyze查詢.具體以后測試下

  6、10GR2的一些變化.

  增強了AWR的報告, 提供了專門的ash報告,可以通過新的ashrpt.sql($ORACLE_HOME/rdbms/admin下)腳本產生我們需要的ash報告;提供了類似于statspack獲取AWR庫中某個sql(通過腳本)的統計信息和執行信息

  ·streams_pool_size現在成為ASSM中的一員

  ·自動調節DB_FILE_MULTIBLOCK_READ_COUNT參數,Oracle會根據數據庫的訪問自動調節該參數

  ·增加了SQL的優化模式,提供了SQL Tuning Adsivor,SQL Profile等工具.可自動優化sql語句

  ·兩個比較重要的視圖:v$PROCESS_MEMORY,動態監控每個進程的pga使用,v$sqlstats某種情況下可以替換v$sql視圖

本文是大家掌握好Oracle 10g知識的基礎,相信通過上文中的介紹,大家現在對于Oracle 10g中的SQL優化亮點的問題也有了一定的了解,希望能夠幫助到大家。

【編輯推薦】

  1. Oracle 10g 特性之虛擬專用數據庫
  2. 詳解RedHat AS5下安裝Oracle 10g數據庫
  3. 透過SQL Server 2008訪問Oracle 10g的配置方法
  4. Oracle 10g中安裝Perl環境所產生的沖突
責任編輯:迎迎 來源: 中國IT實驗室
相關推薦

2009-10-20 18:32:25

Oracle 10g

2010-04-14 16:09:51

Oracle 10g歸

2011-08-17 16:52:11

Oracle 10gLogmnr

2010-03-30 19:31:25

Oracle 10g

2011-03-25 16:10:58

oraclenagios

2011-05-13 11:21:51

linuxoracle 10g安裝

2010-04-29 15:50:35

2010-04-14 14:40:32

Oracle 10g

2010-04-30 17:50:25

2010-04-14 10:03:52

SQL Server

2011-08-30 14:40:46

SQL Server Oracle 10gC#源碼程序

2010-09-08 08:44:30

SQL Server

2011-03-29 09:56:48

Oracle數據庫10SQL

2010-04-07 09:39:18

Oracle 10G

2010-05-07 09:35:25

Oracle 10g

2009-04-27 13:26:41

Oracle 10gRAC鏈接錯誤

2010-04-13 10:07:19

Oracle 10G

2009-11-19 10:32:41

Oracle 10g服

2010-04-26 10:32:55

Oracle 10g

2010-08-04 09:03:53

PerlOracle 10g
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美国产成人一区二区 | 亚洲欧美一区二区三区在线 | 欧美一区二区在线 | 国产精品毛片一区二区在线看 | 91免费电影 | 曰批视频在线观看 | 成人h视频在线 | 91精品无人区卡一卡二卡三 | 国产高清在线观看 | 久久国产亚洲 | 91视频精选 | 亚洲视频三区 | 2018国产精品 | 午夜av电影 | 久久一区二区三区四区五区 | 日韩成人高清 | 国产精品嫩草影院精东 | 午夜寂寞影院列表 | 99re在线视频观看 | 日韩精品一区二区三区四区视频 | 午夜影院毛片 | 国产综合视频 | 欧美影院| 亚洲一区二区三区免费视频 | 亚洲欧美成人影院 | 国产精品久久777777 | 国产在线精品一区二区三区 | 国产亚洲一区二区三区在线观看 | 亚洲精品资源 | 亚洲国产二区 | 天天干天天谢 | 成人欧美一区二区三区在线播放 | 99精品观看 | 精品国产区| 高清一区二区三区 | 国产综合视频 | 久久成人av| 亚洲精品乱码 | 99日韩 | 国产色网| 精品国产视频 |