Oracle中Hint深入理解
Commit complete.
SQL> create index t_ind on t(id,object_name);
Index created.
SQL> exec dbms_stats.gather_table_stats('HR','T',cascade=>true);
PL/SQL procedure successfully completed.
執行全表掃描
SQL> select /*+ full(t) */ * from t where object_name='EMPLOYEES';
6 rows selected.
Execution Plan
----------------------------------------------------------
Plan hash value: 1601196873
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 5 | 135 | 215 (3)| 00:00:03 |
|* 1 | TABLE ACCESS FULL| T | 5 | 135 | 215 (3)| 00:00:03 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("OBJECT_NAME"='EMPLOYEES')
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
942 consistent gets
0 physical reads
0 redo size
538 bytes sent via SQL*Net to client
385 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
6 rows processed
不採用hint
SQL> select * from t where object_name='EMPLOYEES';
6 rows selected.
Execution Plan
----------------------------------------------------------
Plan hash value: 2869677071
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 5 | 135 | 5 (0)| 00:00:01 |
|* 1 | INDEX SKIP SCAN | T_IND | 5 | 135 | 5 (0)| 00:00:01 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - access("OBJECT_NAME"='EMPLOYEES')
filter("OBJECT_NAME"='EMPLOYEES')
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
17 consistent gets
1 physical reads
0 redo size
538 bytes sent via SQL*Net to client
385 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
6 rows processed
當全表掃描掃描了942個塊,聯合索引只掃描了17個數據塊。可以看到聯合索引的第一個欄位的值重複率很高時,即使謂詞中沒有聯合索引的第一個欄位,依然會使用index_ss方式,效率遠遠高於全表掃描效率。但當
相關推薦
Oracle中Hint深入理解
SQL> commit; Commit complete. SQL> create index t_ind on t(id,object_name); Index created. SQL> exec dbms_stats.gather_table_stats('HR','T',cascad
Android中BaseAdapter深入理解
question:當一個列表有很多條資料的需要自定義adapter載入時,列表資料根據資料的屬性不同設定不同的顏色。程式碼例項如下: @Override public View getView(int position, View convertView, Vi
nodejs中npm深入理解
1.Node.js中,一個JavaScript檔案中定義的變數、函式,都只在這個檔案內部有效。例如下圖中,foo.js中定義的變數僅僅能夠在當前檔案中訪問。 當需要從此JS檔案外部(例如上圖中06.js)引用這些變數、函式時,必須使用exports物件進行暴露。使用者
oracle中hint的使用-SQL語句優化
表明對語句塊選擇基於開銷的優化方法,並獲得最佳吞吐量,使資源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/ 表明對語句塊選擇基於開銷的優化方
python中yield深入理解
歡迎使用Markdown編輯器寫部落格 yield關鍵字用來定義生成器(Generator),其具體功能是可以當return使用,從函式裡返回一個值,不同之處是用yield返回之後,可以讓函式從上回yield返回的地點繼續執行。也就是說,yield返回函式,交
深入理解Oracle中的shared pool與library cache元件及相關等待事件
傳統的’library cache pin’在10.2.0.2之後預設被取代, 此處PIN被Mutex及其ref count取代。 當程序執行遊標語句時或者需要PIN,或者需要hard parse一個子遊標heap。在版本10.2.0.1中, 使用mutex部分程式碼替代PIN的功能預設是不啟用的,
ORACLE中的Server_name和SID概念理解
oracle sid server_name 博文說明【前言】: 本文將通過個人口吻介紹在ORACLE中的Server_name和實例名SID的相關概念,在目前時間點【2017年5月22號】下,所掌握的技術水平有限,可能會存在不少知識理解不夠深入或全面,望大家指出問題共同交流,在後續工作及學
深入理解asp.net中的 __doPostBack函數
control mar find ros 理解 額外 工具 服務器 們的 前段時間做一個.net網站的時候,用到了模擬前端按鈕刷新updatePanel進行局部刷新的時候,遇見了這個問題,當時沒顧上記下來,查看網上資料,記下來留著以後查看. 很早以前,當我剛接觸a
深入理解C++中public、protected及private用法
strong ostream pro index nbsp contain table bsp 新的 深入理解C++中public、protected及private用法 投稿:shichen2014 字體:[增加 減小] 類型:轉載 時間:2014-08-23 我要評論
深入理解C++中的Const,Mutable以及Volatile
private 結果 返回 成員變量 一個 del oid 深入 lock 我一直認為const表示一個常量,常量就是一個無法被修改的值,但是沒有深入理解const的實現,甚至不知道mutable和volatile的存在,最近在書中看到了這一部分的知識,所以本文將詳細解析
《深入理解Java虛擬機:JVM高級屬性與最佳實踐》讀書筆記(更新中)
pen 內存區域 深度 span 進化 ria 最短 描述 core 第一章:走進Java 概述 Java技術體系 Java發展史 Java虛擬機發展史 1996年 JDK1.0,出現Sun Classic VM HotSpot VM, 它是 Sun JDK 和 Open
C++多態中虛函數的深入理解
end pri turn 函數的重載 stat 例子 cout 派生 字節 c++中動態多態性是通過虛函數來實現的。靜態多態性是通過函數的重載來實現的,在程序運行前的一種早綁定,動態多態性則是程序運行過程中的一種後綁定。根據下面的例子進行說明。 #include <
通過例子深入理解javascript中的new操作符
not 而是 efi undefine new blog div 函數功能 成功 1.首先看一道題目 1 function Cat(name,age){ 2 this.name=name; 3 this.age=age; 4 } 5 console.l
深入理解空間搜索算法 ——數百萬數據中的瞬時搜索
高效 建立 ext 交流 span 地球 範圍 感謝 第一次 轉自 幹貨|深入理解空間搜索算法 ——數百萬數據中的瞬時搜索 2017-05-01 10:50 全球人工智能:專註為AI開發者提供全球最新AI技術動態和社群交流。用戶來源包括:北大、
深入理解 WordPress 數據庫中的用戶數據 wp_user
數據 php 兩個 數據庫 post 數據包 內容 顯示 critical WordPress 使用 wp_users 數據表存儲用戶的主要數據,該數據表結構類似於wp_posts 和 wp_comments 數據表,存儲的是需要經常訪問的用戶數據,該數據表的結構以及該數據
JDK學習---深入理解java中的String
test bound test6 -h 很多 lai 靈活性 圖形 會有 本文參考資料: 1、《深入理解jvm虛擬機》 2、《大話數據結構》、《大化設計模式》 3、http://www.cnblogs.com/ITtangtang/p/3976820.html#344102
深入理解 Java中的 流 (Stream)
重要 抽象 bool sta 也會 簡單 throws image true 首先,流是什麽? 流是個抽象的概念,是對輸入輸出設備的抽象,Java程序中,對於數據的輸入/輸出操作都是以“流”的方式進行。設備可以是文件,網絡,內存等。 流具有方向性,至於是輸入流還是輸出流則
C中異步IO淺析之三:深入理解異步IO的基本數據結構
c 異步io libaio 一個函數庫或一段代碼的數據結構之間的關系,既展示了數據的行蹤,同時又隱含了函數的調用順序和使用方法。libaio內部的多個數據結構尤其如此,哪怕我們找不到文檔或者幫助手冊,只要深刻領悟頭文件中定義的數據結構及其內在聯系,再加一點代碼的驗證,就可以達到對libaio的A
深入理解PHP中賦值與引用
str ring int 之前 不同 重新 small nts 計數 【原文】 先看下面的問題: 1 2 3 4 5 6 7 8 <?php $a = 10;//將常量值賦給變量,會為a分配內存空間 $b = $a;//變量賦值給變量,是不是
深入理解JavaScript中的函數操作
要求 使用情況 並不是 回文 工作 alert http load 函數 匿名函數 對於什麽是匿名函數,這裏就不做過多介紹了。我們需要知道的是,對於JavaScript而言,匿名函數是一個很重要且具有邏輯性的特性。通常,匿名函數的使用情況是:創建一個供以後使用的函數。 簡單