各版本資料庫重建索引後是否自動分析表和索引9i+10g+11g
--重建索引後是否自動分析表和索引(9i+10g+11g)
--9i庫
SQL> select * from v$version where rownum<5;
--9i庫
SQL> select * from v$version where rownum<5;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
PL/SQL Release 9.2.0.6.0 - Production
CORE 9.2.0.6.0 Production
TNS for HPUX: Version 9.2.0.6.0 - Production
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
PL/SQL Release 9.2.0.6.0 - Production
CORE 9.2.0.6.0 Production
TNS for HPUX: Version 9.2.0.6.0 - Production
--建測試表
SQL> create table test1(id number,name varchar2(10));
SQL> create table test1(id number,name varchar2(10));
Table created.
Elapsed: 00:00:00.00
SQL> insert into test1 values (1,'yallonking');
SQL> insert into test1 values (1,'yallonking');
1 row created.
SQL> commit;
Commit complete.
--建索引
SQL> create index idx_test on test1(id);
SQL> create index idx_test on test1(id);
Index created.
--表和索引的均沒有分析
SQL> select LAST_ANALYZED from user_tables where table_name='TEST1';
--表和索引的均沒有分析
SQL> select LAST_ANALYZED from user_tables where table_name='TEST1';
LAST_ANALYZED
-------------------
-------------------
SQL> select LAST_ANALYZED from user_indexes where table_name='TEST1';
LAST_ANALYZED
-------------------
-------------------
--收集表資訊
SQL> analyze table test1 compute statistics;
SQL> analyze table test1 compute statistics;
Table analyzed.
--表和索引資訊已存在
SQL> select LAST_ANALYZED from user_tables where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:17:44
-------------------
2012/09/08 11:17:44
SQL> select LAST_ANALYZED from user_indexes where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:17:44
-------------------
2012/09/08 11:17:44
--記錄當前時間
SQL> select sysdate from dual;
SQL> select sysdate from dual;
SYSDATE
-------------------
2012/09/08 11:18:23
-------------------
2012/09/08 11:18:23
--重建索引
SQL> alter index idx_test rebuild;
SQL> alter index idx_test rebuild;
Index altered.
SQL> select LAST_ANALYZED from user_tables where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:17:44
-------------------
2012/09/08 11:17:44
SQL> select LAST_ANALYZED from user_indexes where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:17:44
-------------------
2012/09/08 11:17:44
--線上重建索引
SQL> alter index idx_test rebuild online;
SQL> alter index idx_test rebuild online;
Index altered.
Elapsed: 00:00:00.18
--檢視錶和索引分析時間(未變)
SQL> alter index idx_test rebuild online;
SQL> alter index idx_test rebuild online;
Index altered.
SQL> select LAST_ANALYZED from user_indexes where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:17:44
-------------------
2012/09/08 11:17:44
SQL> select LAST_ANALYZED from user_tables where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:17:44
-------------------
2012/09/08 11:17:44
--10g庫
SQL> select * from v$version where rownum<5;
SQL> select * from v$version where rownum<5;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for IBM/AIX RISC System/6000: Version 10.2.0.4.0 - Productio
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for IBM/AIX RISC System/6000: Version 10.2.0.4.0 - Productio
--建測試表
SQL> create table test1(id number,name varchar2(10));
Table created.
SQL> insert into test1 values (1,'yallonking');
1 row created.
SQL> commit;
Commit complete.
--建索引
SQL> create index idx_test on test1(id);
SQL> create index idx_test on test1(id);
Index created.
--表沒有分析但是此時索引的卻進行了分析(和9i不同)
SQL> select LAST_ANALYZED from user_tables where table_name='TEST1';
SQL> select LAST_ANALYZED from user_tables where table_name='TEST1';
LAST_ANALYZED
-------------------
-------------------
SQL> select LAST_ANALYZED from user_indexes where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:44:13
-------------------
2012/09/08 11:44:13
--收集表資訊
SQL> analyze table test1 compute statistics;
SQL> analyze table test1 compute statistics;
Table analyzed.
--表和索引資訊已存在
SQL> select LAST_ANALYZED from user_tables where table_name='TEST1';
SQL> select LAST_ANALYZED from user_tables where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:44:38
-------------------
2012/09/08 11:44:38
SQL> select LAST_ANALYZED from user_indexes where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:44:38
-------------------
2012/09/08 11:44:38
--記錄當前時間
SQL> select sysdate from dual;
SQL> select sysdate from dual;
SYSDATE
-------------------
2012/09/08 11:45:10
-------------------
2012/09/08 11:45:10
--重建索引
SQL> alter index idx_test rebuild;
SQL> alter index idx_test rebuild;
Index altered.
SQL> select LAST_ANALYZED from user_indexes where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:45:34
-------------------
2012/09/08 11:45:34
SQL> select LAST_ANALYZED from user_tables where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:44:38
-------------------
2012/09/08 11:44:38
--線上重建索引
SQL> alter index idx_test rebuild online;
Index altered.
SQL> select LAST_ANALYZED from user_tables where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:44:38
-------------------
2012/09/08 11:44:38
SQL> select LAST_ANALYZED from user_indexes where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:46:05
-------------------
2012/09/08 11:46:05
--11g庫
SQL> select * from v$version where rownum<5;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
--建測試表
SQL> create table test1(id number,name varchar2(10));
SQL> create table test1(id number,name varchar2(10));
Table created.
SQL> insert into test1 values (1,'yallonking');
1 row created.
SQL> commit;
Commit complete.
--建索引
SQL> create index idx_test on test1(id);
SQL> create index idx_test on test1(id);
Index created.
--表和索引的均沒有分析
SQL> select LAST_ANALYZED from user_tables where table_name='TEST1';
--表和索引的均沒有分析
SQL> select LAST_ANALYZED from user_tables where table_name='TEST1';
LAST_ANALYZED
-------------------
-------------------
SQL> select LAST_ANALYZED from user_indexes where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:10:45
-------------------
2012/09/08 11:10:45
--收集表資訊
SQL> analyze table test1 compute statistics;
SQL> analyze table test1 compute statistics;
Table analyzed.
--表和索引資訊已存在
SQL> select LAST_ANALYZED from user_tables where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:11:12
-------------------
2012/09/08 11:11:12
SQL> select LAST_ANALYZED from user_indexes where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:11:12
-------------------
2012/09/08 11:11:12
--記錄當前時間
SQL> select sysdate from dual;
SQL> select sysdate from dual;
SYSDATE
-------------------
2012/09/08 11:11:37
-------------------
2012/09/08 11:11:37
--重建索引
SQL> alter index idx_test rebuild;
SQL> alter index idx_test rebuild;
Index altered.
SQL> select LAST_ANALYZED from user_tables where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:11:12
-------------------
2012/09/08 11:11:12
SQL> select LAST_ANALYZED from user_indexes where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:11:51
-------------------
2012/09/08 11:11:51
--線上重建索引
SQL> alter index idx_test rebuild online;
SQL> alter index idx_test rebuild online;
Index altered.
SQL> select LAST_ANALYZED from user_tables where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:11:12
-------------------
2012/09/08 11:11:12
SQL> select LAST_ANALYZED from user_indexes where table_name='TEST1';
LAST_ANALYZED
-------------------
2012/09/08 11:12:16
-------------------
2012/09/08 11:12:16
結論:關於索引是否分析見下簡表
庫版本 9i庫 10g庫 11g庫
建立時是否分析 否 是 是
非線上重建索引是否分析 否 是 是
線上重建是否分析 否 是 是
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26143577/viewspace-742932/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle表與索引的分析及索引重建Oracle索引
- Oracle表與索引的分析及索引重建(轉)Oracle索引
- Oracle 表的移動和索引的重建Oracle索引
- oracle 索引分析及索引重建Oracle索引
- 資料庫表,索引(索引組織表,聚簇表,聚簇索引,)資料庫索引
- 空間索引 - 各資料庫空間索引使用報告索引資料庫
- 索引重建的資料來源索引
- 【轉載】資料庫索引重建參考依據資料庫索引
- oracle 表分析和索引Oracle索引
- 分析索引是否有效索引
- 索引重建的資料來源(二)索引
- SAP中的資料庫表索引資料庫索引
- mysql對資料庫表建索引MySql資料庫索引
- 資料庫索引分裂 問題分析資料庫索引
- 分析索引是否變'壞'索引
- 資料庫索引資料庫索引
- 資料庫系列:覆蓋索引和規避回表資料庫索引
- oracle重建索引Oracle索引
- 資料庫索引背後的資料結構資料庫索引資料結構
- 資料庫建表及索引規約資料庫索引
- 淺談索引系列之索引重建索引
- 資料庫系列:字首索引和索引長度的取捨資料庫索引
- Oracle表table與索引index的分析及索引重建及統計資訊匯入匯出Oracle索引Index
- GreatSQL資料庫DROP表後無法重建SQL資料庫
- 【Mysql】資料庫索引,百萬資料測試索引效果MySql資料庫索引
- 【資料庫】mysql資料庫索引資料庫MySql索引
- indexedDB 資料庫 索引Index資料庫索引
- 資料庫索引原理資料庫索引
- 資料庫索引《二》資料庫索引
- 資料庫索引《一》資料庫索引
- [資料庫]索引失效資料庫索引
- 資料庫表的唯一索引問題資料庫索引
- 資料庫 - 索引、基本表建立與刪除資料庫索引
- MySQL資料庫表索引取樣統計MySql資料庫索引
- oracle重建索引(一)Oracle索引
- oracle重建索引(三)Oracle索引
- oracle重建索引(二)Oracle索引
- 索引的重建命令索引