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

在Oracle SQL優化中經常使用的方案

數據庫 Oracle
以下的文章是介紹通過那些相關的方式能使Oracle SQL優化變得更加的實用,以下就是文章的相關內容的介紹,希望會給你帶來一些幫助。

Oracle SQL優化中我們會經常用到固定optimizer plan,在固定optimizer plan中我們要進行stored outline的創建,以及如何使用stored outline等相關實際操作,以下就是相關內容的具體介紹。

1、優化器模式

Oracle9i有兩種優化器模式可以選擇:

 

  1. • Rule-based:  
  2. – Uses a ranking system  
  3. – Syntax- and data dictionary–driven  
  4. • Cost-based:  
  5. – Chooses least-cost path  
  6. – Statistics-driven 

 

 

Rule-based模式滿足向后兼容,而Cost-based模式中的成本大部分來自于邏輯讀的次數,推薦使用Cost-based模式。

 

2、固定optimizer plan

1)概念

對于每一個查詢,optimizer都會準備一個定義了操作執行順序和方法的操作樹(執行計劃),oracle server根據這個執行計劃執行語句。通過固定執行計劃,可以強制應用通過一種理想的方式訪問數據,并且一個穩定的執行計劃可以經歷數據庫的變化而保持不變。固定執行計劃通過創建stored outline實現,outline使用cost-based的optimizer,因為其由一系列的hints組成。

 

執行計劃的固定依賴于當判定一個查詢是否存在stored outline時查詢語句是否完全一致,與判定shared pool里一個執行計劃是否可以重用時的匹配方式是一致的。

 

Outline被保存在outln schema中。

 

2) 創建stored outline

 

  1. alter session set CREATE_STORED_OUTLINES = train;  
  2. create or replace OUTLINE co_cl_join  
  3. FOR CATEGORY train ON  
  4. select co.crs_id, ...  
  5. from courses co,classes cl  
  6. where co.crs_id = cl.crs_id; 

 

 

stored outline通過category組織,相同的sql語句可以在多個category同時擁有stored outline,如果categoey沒有指定,缺省是default category。

當CREATE_STORED_OUTLINES等于true或category名時,oracle會為所有被執行的sql語句創建stored outline,也可以通過create outline手工創建。

 

3) 使用stored outline

將USE_STORED_OUTLINES設置為true或category名。

 

 

  1. alter session set USE_STORED_OUTLINES = train

 

當為一個查詢尋找stored outline時,查詢語句與stored outline里的語句必須完全一致,在outline里的hints也必須在查詢語句中出現。

3、private outline

在Oracle SQL優化中Private outline是當前保存的stored outline的副本,可以被編輯而不影響正在運行的系統,一個private outline只能被當前session看到,它的數據被保存在當前被解析的schema里。,知道顯示的將其公布。

當USE_PRIVATE_OUTLINES=TRUE時,一個已有outline的sql被提交時,optimizer會檢查是否存在private outline,如果不存在,optimizer就不使用optimizer編譯語句,而不會去檢查公布的stored outline。

 

4、在sql中使用hints

 

  1. Create index gen_idx on customers(cust_gender);   
  2. Select /*+ index(customers gen_idx)*/   
  3. Cust_last_name,cust_street_address,cust_postal_code   
  4. From sh.customers where upper(gender)=’M’; 

 

 

5、EXPLAIN PLAN

可以不通過tracing,需要建立plan_table表:

 

 

  1. Sql>@oracle_home/rdbms/admin/utlxplan;  

 

建立explain plan:

 

 

  1. Explain plan for select last_name from hr.emp;  

 

查詢plan_table中的explain plan,可以直接查詢,也可以通過腳本utlxplx.sql(隱藏并行查詢信息)、utlxplp.sql(顯示并行查詢信息)查詢。

 

6、管理統計信息

利用analyize命令收集或刪除信息。

 

參數:

 

Compute:統計精確的數據;

 

Estimate:估計的統計數據。

 

各類統計數據的位置:

表:dba_tables;

 

索引:dba_indexes;

 

列:user_tab_col_statistics;

 

柱狀圖(histogram)詳細的描述了一個特定列中數據的分布情況,可以通過analyize table ... for columns... 命令創建,保存在dba_histogram/dba_tab_histograms中。

上述的相關內容就是對Oracle SQL優化的描述,希望會給你帶來一些幫助在此方面。

【編輯推薦】

  1. Oracle應用的程序開發趨于向Web的緣由
  2. Oracle RAC中錯誤觀點出現的原因
  3. Oracle客戶關系管理論壇的內容簡介
  4. Oracle用戶密碼的修改
  5. Oracle常用的命令如何查看表的結構
責任編輯:佚名 來源: 博客園
相關推薦

2010-03-31 17:17:32

2010-04-15 15:42:11

Oracle數據庫

2011-04-11 13:28:31

Oracle安裝

2010-03-22 15:38:46

Python常用模塊

2020-11-08 16:04:03

開發工具技術

2010-04-21 08:50:08

2010-04-20 10:01:16

Oracle數據庫

2010-04-06 13:07:45

Oracle數據庫

2010-04-23 10:30:17

Oracle移植

2022-09-23 08:16:55

數據庫高并發項目

2022-09-30 09:26:35

JavaScript技巧

2022-09-25 22:56:52

JavaScrip編程技巧

2010-07-14 10:51:45

SQL Server連

2011-04-11 13:25:59

Sybase安裝

2021-03-04 22:15:36

JavaScript編程開發

2018-02-01 09:26:12

面試算法題程序員

2010-03-29 10:55:38

Oracle優化

2009-12-15 15:54:11

路由器技術

2010-06-04 19:31:25

遠程MySQL權限

2010-04-13 15:04:16

Oracle優化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本精品裸体写真集在线观看 | 久久久久久国产 | 国产精品一区二区福利视频 | 精品欧美一区二区中文字幕视频 | 九九伊人sl水蜜桃色推荐 | 精品亚洲一区二区三区四区五区高 | 婷婷色在线 | 日本不卡免费新一二三区 | 日批免费看 | 国产日韩一区二区 | 国产美女自拍视频 | 精品免费国产 | 日韩久久精品视频 | 在线免费观看欧美 | 亚洲精品在线视频 | 亚洲一区电影 | 特级毛片 | 婷婷成人在线 | 久久久久久久香蕉 | 日韩在线中文字幕 | 91影视 | 九九热在线免费观看 | 午夜av电影院 | 国产精品性做久久久久久 | 国产亚洲欧美另类一区二区三区 | 国产一二区视频 | 精品免费国产一区二区三区 | 久久激情五月丁香伊人 | com.国产| 天天拍天天色 | 中文字幕成人在线 | 久久久久精 | 青青久草 | 亚洲一在线 | 成人亚洲精品 | 成人亚洲在线 | 黄色欧美视频 | 欧美日高清 | 欧美在线精品一区 | 日韩免费视频一区二区 | 一级在线毛片 |