自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

記一次Oracle數(shù)據(jù)庫實(shí)驗(yàn)--索引的常見執(zhí)行計(jì)劃

數(shù)據(jù)庫 Oracle
今天主要介紹下Oracle索引的常見執(zhí)行計(jì)劃,這里用簡單的測試案例,體會下索引使用這些執(zhí)行計(jì)劃的場景。

概述

今天主要介紹下Oracle索引的常見執(zhí)行計(jì)劃:

  • INDEX FULL SCAN:索引的全掃描,單塊讀,有序
  • INDEX RANGE SCAN:索引的范圍掃描
  • INDEX FAST FULL SCAN:索引的快速全掃描,多塊讀,無序
  • INDEX FULL SCAN(MIN/MAX):針對MAX(),MIN()函數(shù)的查詢
  • INDEX SKIP SCAN:查詢條件沒有用到組合索引的第一列,而組合索引的第一列重復(fù)度較高時,可能用到。

這里用簡單的測試案例,體會下索引使用這些執(zhí)行計(jì)劃的場景。

[[283961]]

1. 準(zhǔn)備測試環(huán)境

創(chuàng)建測試表和索引:

  1. drop table test_objects; 
  2. create table test_objects as select * from all_objects; 
  3. create index idx_test_objects_1 on test_objects(owner, object_name, subobject_name); 
  4. create index idx_test_objects_2 on test_objects(object_id); 
  5. desc test_objects; 

查看測試表上的索引信息:

  1. select index_name, column_name, column_position from user_ind_columns where table_name = 'TEST_OBJECTS'

分析表并清空測試環(huán)境的shared_pool和buffer_cache:

  1. analyze table test_objects compute statistics; 
  2. alter system flush shared_pool; 
  3. alter system flush buffer_cache; 

記一次Oracle數(shù)據(jù)庫實(shí)驗(yàn)--索引的常見執(zhí)行計(jì)劃

記一次Oracle數(shù)據(jù)庫實(shí)驗(yàn)--索引的常見執(zhí)行計(jì)劃

2. 準(zhǔn)備SQL語句

根據(jù)不同執(zhí)行計(jì)劃的場景,編寫SQL語句:

  1. --INDEX RANGE SCAN(索引的范圍掃描) 
  2. SELECT owner, object_name FROM test_objects WHERE owner = 'SYS' AND object_name = 'DBMS_OUTPUT'
  3.  
  4. --INDEX SKIP SCAN(針對MAX(),MIN()函數(shù)的查詢) 
  5. SELECT owner, object_name FROM test_objects WHERE object_name = 'DBMS_OUTPUT'
  6.  
  7. --INDEX FAST FULL SCAN(索引的快速全掃描,多塊讀,無序) 
  8. SELECT owner, object_name FROM test_objects; 
  9.  
  10. --INDEX FULL SCAN(索引的全掃描,單塊讀,有序) 
  11. SELECT owner, object_name FROM test_objects order by 1, 2; 
  12.  
  13. --INDEX FULL SCAN (MIN/MAX)(針對MAX(),MIN()函數(shù)的查詢) 
  14. SELECT max(object_id) FROM test_objects; 

3. 實(shí)驗(yàn)論證

結(jié)果如下:

(1) INDEX RANGE SCAN

  1. set autotrace traceonly 
  2. SELECT owner, object_name FROM test_objects WHERE owner = 'SYS' AND object_name = 'DBMS_OUTPUT'

記一次Oracle數(shù)據(jù)庫實(shí)驗(yàn)--索引的常見執(zhí)行計(jì)劃

(2) INDEX SKIP SCAN

  1. SELECT owner, object_name FROM test_objects WHERE object_name = 'DBMS_OUTPUT'

記一次Oracle數(shù)據(jù)庫實(shí)驗(yàn)--索引的常見執(zhí)行計(jì)劃

(3) INDEX FAST FULL SCAN

  1. SELECT owner, object_name FROM test_objects; 

記一次Oracle數(shù)據(jù)庫實(shí)驗(yàn)--索引的常見執(zhí)行計(jì)劃

(4) INDEX FULL SCAN

  1. SELECT owner, object_name FROM test_objects order by 1, 2;  

記一次Oracle數(shù)據(jù)庫實(shí)驗(yàn)--索引的常見執(zhí)行計(jì)劃

(5) INDEX FULL SCAN (MIN/MAX)

  1. SELECT max(object_id) FROM test_objects;  

記一次Oracle數(shù)據(jù)庫實(shí)驗(yàn)--索引的常見執(zhí)行計(jì)劃

責(zé)任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2024-12-17 14:52:46

2017-09-22 11:01:00

Oracle數(shù)據(jù)庫中直方圖

2019-11-18 13:42:55

MySQL數(shù)據(jù)庫遷移

2011-08-18 14:10:51

Oracle不走索引

2019-12-25 14:55:35

數(shù)據(jù)庫MySQLOracle

2018-12-06 16:25:39

數(shù)據(jù)庫服務(wù)器線程池

2021-10-14 10:53:20

數(shù)據(jù)庫查詢超時

2018-02-23 13:41:05

數(shù)據(jù)庫MySQL數(shù)據(jù)恢復(fù)

2018-07-11 10:24:33

數(shù)據(jù)恢復(fù)數(shù)據(jù)刪除

2009-11-10 16:00:05

Oracle執(zhí)行計(jì)劃

2009-11-13 16:28:02

Oracle生成執(zhí)行計(jì)

2019-09-11 08:22:57

MySQL數(shù)據(jù)庫遠(yuǎn)程登錄

2011-09-13 15:39:00

SQL Server性能調(diào)優(yōu)

2019-12-16 07:18:42

數(shù)據(jù)庫SQL代碼

2019-11-22 08:05:01

數(shù)據(jù)庫mysql分區(qū)

2009-11-18 17:05:47

捕獲Oracle SQ

2019-08-19 01:34:38

數(shù)據(jù)庫SQL數(shù)據(jù)庫優(yōu)化

2011-03-16 08:54:45

Oracle數(shù)據(jù)庫索引

2019-12-12 10:38:10

mysql數(shù)據(jù)庫nnodb

2011-03-16 11:17:30

DB2數(shù)據(jù)庫執(zhí)行計(jì)劃
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號