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

Oracle數據庫:全局索引的ONLINE重建要影響執行速度

數據庫 Oracle
在Oracle數據庫中采用ONLINE方式重建全局索引時,發現用的時間非常的長。那究竟時間長的原因在哪里呢?讀完本文就明白了。

Oracle數據庫重建一個表的索引的時候,基本都是全局索引而且都是ONLINE方式重建,每個分區的重建時間基本相同,大約在23分鐘左右。其實導致問題的原因很簡單:由于采用ONLINE方式,而且全局索引的每一個分區的數據可能來自這個表的任何一個分區,所以ORACLE對于全局索引的任何一個分區的重建都要走全表掃描。以下是這一過程的代碼演示部分:

1.查看當前用戶,并以當前用戶創建表T

  1. SQL> SHOW USER  
  2.  
  3. USER is "TEST"  
  4.  
  5. SQL> CREATE TABLE T(ID INT,NAME VARCHAR2(30))  
  6.  
  7. 2  PARTITION BY RANGE(ID)  
  8.  
  9. 3  (  
  10.  
  11. 4  PARTITION P1 VALUES LESS THAN(10000),  
  12.  
  13. 5  PARTITION P2 VALUES LESS THAN(20000),  
  14.  
  15. 6  PARTITION P3 VALUES LESS THAN(30000),  
  16.  
  17. 7  PARTITION P4 VALUES LESS THAN(40000),  
  18.  
  19. 8  PARTITION P5 VALUES LESS THAN(50000),  
  20.  
  21. 9  PARTITION PMAX VALUES LESS THAN(MAXVALUE)  
  22.  
  23. 10  )  
  24.  
  25. 11  /  
  26.  
  27. Table created. 

2.為表T創建全局索引

  1. SQL> CREATE INDEX T_ID_IDX ON T(ID) GLOBAL  
  2.  
  3. 2  PARTITION BY HASH(ID)  
  4.  
  5. 3  PARTITIONS 32  
  6.  
  7. 4  /  
  8.  
  9. Index created. 

3.查詢索引列名稱和分區列名稱,并以指定的格式顯示

  1. SQL> COL INDEX_NAME  FORMAT A20  
  2.  
  3. SQL> COL PARTITION_NAME FORMAT A20  
  4.  
  5. SQL> SELECT INDEX_NAME,PARTITION_NAME FROM USER_IND_PARTITIONS WHERE INDEX_NAME='T_ID_IDX';  
  6.  
  7. INDEX_NAME           PARTITION_NAME  
  8.  
  9. -------------------- --------------------  
  10.  
  11. T_ID_IDX             SYS_P225  
  12.  
  13. T_ID_IDX             SYS_P226  
  14.  
  15. T_ID_IDX             SYS_P227  
  16.  
  17. T_ID_IDX             SYS_P228  
  18.  
  19. T_ID_IDX             SYS_P229  
  20.  
  21. T_ID_IDX             SYS_P230  
  22.  
  23. T_ID_IDX             SYS_P231  
  24.  
  25. T_ID_IDX             SYS_P232  
  26.  
  27. T_ID_IDX             SYS_P233  
  28.  
  29. T_ID_IDX             SYS_P234  
  30.  
  31. T_ID_IDX             SYS_P235  
  32.  
  33. T_ID_IDX             SYS_P236  
  34.  
  35. T_ID_IDX             SYS_P237  
  36.  
  37. T_ID_IDX             SYS_P238  
  38.  
  39. T_ID_IDX             SYS_P239  
  40.  
  41. T_ID_IDX             SYS_P240  
  42.  
  43. T_ID_IDX             SYS_P241  
  44.  
  45. T_ID_IDX             SYS_P242  
  46.  
  47. T_ID_IDX             SYS_P243  
  48.  
  49. T_ID_IDX             SYS_P244  
  50.  
  51. T_ID_IDX             SYS_P245  
  52.  
  53. T_ID_IDX             SYS_P246  
  54.  
  55. T_ID_IDX             SYS_P247  
  56.  
  57. T_ID_IDX             SYS_P248  
  58.  
  59. T_ID_IDX             SYS_P249  
  60.  
  61. T_ID_IDX             SYS_P250  
  62.  
  63. T_ID_IDX             SYS_P251  
  64.  
  65. T_ID_IDX             SYS_P252  
  66.  
  67. T_ID_IDX             SYS_P253  
  68.  
  69. T_ID_IDX             SYS_P254  
  70.  
  71. T_ID_IDX             SYS_P255  
  72.  
  73. SQL> INSERT INTO T SELECT OBJECT_ID,OBJECT_NAME FROM ALL_OBJECTS;  
  74.  
  75. 50617 rows created.  
  76.  
  77. SQL> COMMIT;  
  78.  
  79. Commit complete. 

 #p#

4.DBMS_STATS.GATHER_TABLE_STATS統計表,列,索引的統計信息.

  1. SQL> EXEC DBMS_STATS.GATHER_TABLE_STATS(USER,'T',CASCADE=>TRUE);  
  2.  
  3. PL/SQL procedure successfully completed.  
  4.  
  5. SQL> EXPLAIN PLAN FOR ALTER INDEX T_ID_IDX REBUILD PARTITION SYS_P225;  
  6.  
  7. Explained.  
  8.  
  9. SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);  
  10.  
  11. PLAN_TABLE_OUTPUT  
  12.  
  13. Plan hash value: 2508449852  
  14.  
  15. ------------------------------------------------------------------------------------  
  16.  
  17. | Id  | Operation               | Name     | Rows  | Bytes | Cost  | Pstart| Pstop |  
  18.  
  19. ------------------------------------------------------------------------------------  
  20.  
  21. |   0 | ALTER INDEX STATEMENT   |          | 50617 |   247K|    56 |       |       |  
  22.  
  23. |   1 |  INDEX BUILD NON UNIQUE | T_ID_IDX |       |       |       |       |       |  
  24.  
  25. |   2 |   SORT CREATE INDEX     |          | 50617 |   247K|       |       |       |  
  26.  
  27. |   3 |    PARTITION HASH SINGLE|          |       |       |       |     1 |     1 |  
  28.  
  29. |   4 |     INDEX FAST FULL SCAN| T_ID_IDX |       |       |       |     1 |     1 |  
  30.  
  31. ------------------------------------------------------------------------------------  
  32.  
  33. Note  
  34.  
  35. -----  
  36.  
  37. - cpu costing is off (consider enabling it)  
  38.  
  39. 15 rows selected.  
  40.  
  41. SQL> EXPLAIN PLAN FOR ALTER INDEX T_ID_IDX REBUILD PARTITION SYS_P225 ONLINE;  
  42.  
  43. Explained.  
  44.  
  45. SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);  
  46.  
  47. PLAN_TABLE_OUTPUT  
  48.  
  49. ----------------------------------------------------------------------------------------------------  
  50.  
  51. Plan hash value: 78911014  
  52.  
  53. -----------------------------------------------------------------------------------  
  54.  
  55. | Id  | Operation              | Name     | Rows  | Bytes | Cost  | Pstart| Pstop |  
  56.  
  57. -----------------------------------------------------------------------------------  
  58.  
  59. |   0 | ALTER INDEX STATEMENT  |          | 50617 |   247K|    56 |       |       |  
  60.  
  61. |   1 |  INDEX BUILD NON UNIQUE| T_ID_IDX |       |       |       |       |       |  
  62.  
  63. |   2 |   SORT CREATE INDEX    |          | 50617 |   247K|       |       |       |  
  64.  
  65. |   3 |    PARTITION RANGE ALL |          | 50617 |   247K|    56 |     1 |     6 |  
  66.  
  67. |*  4 |     TABLE ACCESS FULL  | T        | 50617 |   247K|    56 |     1 |     6 |  
  68.  
  69. -----------------------------------------------------------------------------------  
  70.  
  71. Predicate Information (identified by operation id):  
  72.  
  73. ---------------------------------------------------  
  74.  
  75. 4 - filter(TBL$OR$IDX$PART$NUM("TEST"."T",58596,0,1048576,"ID")=1)  
  76.  
  77. Note  
  78.  
  79. -----  
  80.  
  81. - cpu costing is off (consider enabling it)  
  82.  
  83. 20 rows selected.  
  84.  
  85. SQL> EXPLAIN PLAN FOR ALTER INDEX T_ID_IDX REBUILD PARTITION SYS_P226;  
  86.  
  87. Explained.  
  88.  
  89. SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);  
  90.  
  91. PLAN_TABLE_OUTPUT  
  92.  
  93. ----------------------------------------------------------------------------------------------------  
  94.  
  95. Plan hash value: 2508449852  
  96.  
  97. ------------------------------------------------------------------------------------  
  98.  
  99. | Id  | Operation               | Name     | Rows  | Bytes | Cost  | Pstart| Pstop |  
  100.  
  101. ------------------------------------------------------------------------------------  
  102.  
  103. |   0 | ALTER INDEX STATEMENT   |          | 50617 |   247K|    56 |       |       |  
  104.  
  105. |   1 |  INDEX BUILD NON UNIQUE | T_ID_IDX |       |       |       |       |       |  
  106.  
  107. |   2 |   SORT CREATE INDEX     |          | 50617 |   247K|       |       |       |  
  108.  
  109. |   3 |    PARTITION HASH SINGLE|          |       |       |       |     2 |     2 |  
  110.  
  111. |   4 |     INDEX FAST FULL SCAN| T_ID_IDX |       |       |       |     2 |     2 |  
  112.  
  113. ------------------------------------------------------------------------------------  
  114.  
  115. Note  
  116.  
  117. -----  
  118.  
  119. - cpu costing is off (consider enabling it)  
  120.  
  121. 15 rows selected.  
  122.  
  123. SQL> EXPLAIN PLAN FOR ALTER INDEX T_ID_IDX REBUILD PARTITION SYS_P226 ONLINE;  
  124.  
  125. Explained.  
  126.  
  127. SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);  
  128.  
  129. PLAN_TABLE_OUTPUT  
  130.  
  131. ----------------------------------------------------------------------------------------------------  
  132.  
  133. Plan hash value: 78911014  
  134.  
  135. -----------------------------------------------------------------------------------  
  136.  
  137. | Id  | Operation              | Name     | Rows  | Bytes | Cost  | Pstart| Pstop |  
  138.  
  139. -----------------------------------------------------------------------------------  
  140.  
  141. |   0 | ALTER INDEX STATEMENT  |          | 50617 |   247K|    56 |       |       |  
  142.  
  143. |   1 |  INDEX BUILD NON UNIQUE| T_ID_IDX |       |       |       |       |       |  
  144.  
  145. |   2 |   SORT CREATE INDEX    |          | 50617 |   247K|       |       |       |  
  146.  
  147. |   3 |    PARTITION RANGE ALL |          | 50617 |   247K|    56 |     1 |     6 |  
  148.  
  149. |*  4 |     TABLE ACCESS FULL  | T        | 50617 |   247K|    56 |     1 |     6 |  
  150.  
  151. -----------------------------------------------------------------------------------  
  152.  
  153. Predicate Information (identified by operation id):  
  154.  
  155. ---------------------------------------------------  
  156.  
  157. 4 - filter(TBL$OR$IDX$PART$NUM("TEST"."T",58596,0,1048576,"ID")=2)  
  158.  
  159. Note  
  160.  
  161. -----  
  162.  
  163. - cpu costing is off (consider enabling it)  
  164.  
  165. 20 rows selected. 

可以看到,如果要ONLINE重建這個索引,將會對表T執行32全表掃描。如果要對比較大的表進行在線重建索引,全局索引的重建代價是比較高的,因此耗時會比較長。

【編輯推薦】

  1. 解析OCR與Voting Disk以及其管理
  2. Oracle認證:Oracle優化器的優化方式
  3. Oracle數據庫使用OMF來簡化數據文件的管理
  4. 淺談禁用以操作系統認證方式登錄Oracle數據庫
  5. 淺析Windows通過ODBC訪問linux的Oracle數據庫
責任編輯:趙鵬 來源: 中國IT實驗室
相關推薦

2011-07-19 10:11:23

Oracle數據庫NHibernate-

2019-08-20 22:06:32

Oracle數據庫索引

2023-05-10 08:29:12

2011-05-26 10:11:24

Oracle數據庫索引

2011-07-27 13:22:35

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

2010-08-06 14:02:54

優化IBM DB2優化

2011-03-16 08:54:45

Oracle數據庫索引

2010-02-23 15:25:10

CentOS Apac

2017-09-22 11:01:00

Oracle數據庫中直方圖

2010-11-16 09:18:39

oracle重建索引

2011-07-27 11:08:49

Oracle數據庫EM Console重

2009-06-30 15:02:41

磁盤排序Oracle數據庫性能

2022-05-13 07:31:58

數據庫連接池druid

2023-11-16 17:12:33

數據庫oracle

2010-04-27 18:54:06

AIX語言

2019-03-07 15:06:48

MySQL數據庫數據庫優化

2010-04-27 10:39:59

Oracle數據庫

2018-08-08 17:29:23

數據庫索引磁盤存取

2010-04-19 13:31:42

Oracle索引

2009-06-19 09:36:27

C#執行速度IronPython
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一区2区三区4区公司 | 手机在线观看av | 丁香五月网久久综合 | 久久精品国产亚洲一区二区三区 | 欧美自拍网站 | 欧美午夜一区 | 国内在线视频 | 欧美日韩不卡 | 亚洲免费一区二区 | 91视频网址 | 污污的网站在线观看 | 成人午夜毛片 | 中文字幕日本一区二区 | 日韩中文字幕 | 韩日在线视频 | 精品视频一区二区 | 性一交一乱一透一a级 | 91麻豆精品国产91久久久久久久久 | 成人一区二区三区在线观看 | 国产精品乱码一区二三区小蝌蚪 | 色婷婷综合在线观看 | 国产精品视屏 | 亚洲精品国产一区 | 国产日韩电影 | 九九色综合 | 成人av一区二区三区 | 岛国二区 | 国产精品视频在 | 99在线免费视频 | 全部免费毛片在线播放网站 | 一区二区成人在线 | 97精品超碰一区二区三区 | 亚洲视频在线看 | 精品亚洲一区二区三区 | 日本高清中文字幕 | 精品欧美一区二区在线观看视频 | 国产日韩一区二区三区 | 日韩综合在线播放 | 久久久久国产精品一区三寸 | 懂色av色香蕉一区二区蜜桃 | 亚洲免费影院 |