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

oracle重建索引的實現

數據庫 Oracle
oracle重建索引有很多種方式,下文講講為您詳細介紹幾種方式異同以及優缺點,如果您對此方面感興趣的話,不妨一看。

oracle重建索引是我們經常會用到的操作,下面就將為您詳細介紹oracle重建索引的實現方法,希望對您能夠有所幫助。

oracle重建索引有多種方式,如drop and re-create、rebuild、rebuild online等。下面簡單比較這幾種方式異同以及優缺點:

首先建立測試表及數據:

  1. SQL> CREATE TABLE TEST AS SELECT CITYCODE C1 FROM CITIZENINFO2;  
  2.  
  3. Table created  
  4.  
  5. SQL> ALTER TABLE TEST MODIFY C1 NOT NULL;  
  6.  
  7. Table altered  
  8.  
  9. SQL> SELECT COUNT(1) FROM TEST;  
  10.  
  11. COUNT(1)  
  12. ----------  
  13. 16000000  
  14.  

一、drop and re-create和rebuild

首先看看正常建立索引時,對表的加鎖情況。

  1. suk@ORACLE9I> @show_sid  
  2.  
  3. SID  
  4. ----------  
  5. 14  
  6.  
  7. suk@ORACLE9I> CREATE INDEX IDX_TEST_C1 ON TEST(C1);  

索引已創建。

  1. SQL> SELECT OBJECT_NAME,LMODE FROM V$LOCK L,DBA_OBJECTS O WHERE O.OBJECT_ID=L.ID1 AND L.TYPE='TM' AND SID=14;  
  2.  
  3. OBJECT_NAME LMODE  
  4. ------------------------------ ----------  
  5. OBJ$ 3  
  6. TEST 4  

可見,普通情況下建立索引時,oracle會對基表加share鎖,由于share鎖和 row-X是不兼容的,也就是說,在建立索引期間,無法對基表進行DML操作。

對于刪除重建索引的方法就不介紹了,它與上面的描述是一樣的,下面我們看看用rebuild的方式建立索引有什么特別。

  1. suk@ORACLE9I> ALTER INDEX IDX_TEST_C1 REBUILD; 

索引已更改。

另開一個會話,查詢此時test的加鎖情況:

  1. SQL> SELECT OBJECT_NAME,LMODE FROM V$LOCK L,DBA_OBJECTS O WHERE O.OBJECT_ID=L.ID1 AND L.TYPE='TM' AND SID=14;  
  2.  
  3. OBJECT_NAME LMODE  
  4. ------------------------------ ----------  
  5. TEST 4  

可見,rebuild的方式對基表的加鎖方式與CREATE時是一樣的。

另開一個會話,在索引正在rebuild時,執行如下SQL:

  1. suk@ORACLE9I> SET AUTOTRACE TRACE  
  2. suk@ORACLE9I> SELECT /*+ INDEX(TEST) */ COUNT(1) FROM TEST WHERE ROWNUM<10

執行計劃

  1. ----------------------------------------------------------  
  2. SELECT STATEMENT Optimizer=CHOOSE (Cost=26 Card=1)  
  3. 0 SORT (AGGREGATE)  
  4. 1 COUNT (STOPKEY)  
  5. 2 INDEX (FULL SCAN) OF 'IDX_TEST_C1' (NON-UNIQUE) (Cost=  
  6. 26 Card=1986621

可以看到oracle重建索引時,查詢仍然可以使用舊索引。實際上,oracle在rebuild時,在創建新索引過程中,并不會刪除舊索引,直到新索引rebuild成功。

從這點可以知道rebuild比刪除重建的一個好處是不會影響原有的SQL查詢,但也正由于此,用rebuild方式建立索引需要相應表空間的空閑空間是刪除重建方式的2倍。
 

 

 

【編輯推薦】

利用替換變量提高Oracle交互性

ORACLE系統表和數據字典視圖

帶您了解Oracle文件系統機制

詳解四大類Oracle索引掃描

Oracle查詢重復記錄的三種方法

 

責任編輯:段燃 來源: 互聯網
相關推薦

2010-11-16 09:49:22

Oracle重建索引

2009-10-21 16:34:03

Oracle用戶名重建索引

2009-08-05 13:32:07

Oracle按用戶名重

2019-08-20 22:06:32

Oracle數據庫索引

2011-07-27 13:22:35

檢查索引碎片Oracle數據庫重建索引

2011-05-26 10:11:24

Oracle數據庫索引

2010-10-29 13:50:21

oracle日志文件

2011-07-04 10:19:41

索引ONLINE

2018-01-18 16:10:42

數據庫MySQLOracle

2010-10-26 17:34:03

Oracle索引

2010-04-19 16:09:22

Oracle控制文件

2010-10-27 13:47:50

Oracle索引

2024-03-26 09:29:27

MySQLDDL

2015-09-02 13:38:38

Windows 10搜索索引

2010-10-26 16:33:54

創建Oracle索引

2009-10-22 16:25:53

Oracle UNDO

2011-05-20 11:33:06

ORACLE索引約束

2010-10-26 17:17:37

創建ORACLE索引

2010-07-26 09:34:24

SQL Server性

2009-11-17 13:49:46

Oracle prim
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩高清一区 | 精品国产91久久久久久 | 亚洲免费网 | 你懂的国产 | 亚洲欧美日韩在线一区二区 | 国产欧美日韩在线一区 | 草草网 | 国产精品一区二区免费 | 成人乱人乱一区二区三区软件 | 91高清免费| 性色av网站 | 久久亚洲精品久久国产一区二区 | 91一区| 国产成人精品一区二区三区网站观看 | 精品一区二区三区四区 | 欧美专区在线 | 夜夜艹天天干 | 亚洲精品久久久一区二区三区 | 欧美在线播放一区 | 免费在线看黄 | 国产精品99999999 | 国产精品中文字幕在线 | 91精品国产91久久久久久不卞 | 亚洲欧美另类在线观看 | 免费精品一区 | 日日操av| 亚洲精品一 | 日韩一区二区三区四区五区 | 春色av | 精品国产一级 | 国产美女精品 | 亚洲男人的天堂网站 | 午夜小视频在线观看 | 一区二区视频在线 | 成人精品国产免费网站 | 欧美午夜影院 | 亚洲一区二区精品视频 | 国产精品亚洲成在人线 | 成人免费观看网站 | 日韩一级免费观看 | 国产日韩精品一区 |