實驗:行遷移與分析語句 row migration and analyze statements
步驟:
1 建立儲存chained_row資訊的表
2 建立一個將要發生row migration 的表
3 更新表,使其發生row migration,透過analyze語句檢視。
環境:
所用資料庫 block_size=8192 PCTFREE=10
根據block_size,PCTFREE的不同發生行遷移的條件會不同
oracle 10.2.0.5.0
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
x86_64
具體過程:
1 建立儲存chained_row資訊的表
@?/rdbms/admin/utlchain.sql --或 @?/rdbms/admin/utlchn1.sql |
--其中,utlchain.sql 如下
create table CHAINED_ROWS (
owner_name varchar2(30),
table_name varchar2(30),
cluster_name varchar2(30),
partition_name varchar2(30),
subpartition_name varchar2(30),
head_rowid rowid,
analyze_timestamp date
);
utlchain.sql和utlchn1.sql 的區別在於 head_rowid 欄位utlchain.sql為rowid,utlchn1.sql 為urowid
兩者的區別 http://hi.baidu.com/bystander1983/blog/item/727e2b12658f8b085aaf53a4.html
2 建立一個用於發生row migration 的表,插入資料
> drop table t; Table dropped. > create table t 2 ( a int,b varchar2(4000)) 3 / Table created. > insert into t (a) values (1); 1 row created. > insert into t (a) values (2); 1 row created. > insert into t (a) values (3); 1 row created. > insert into t (a) values (4); 1 row created. > commit; Commit complete. |
3 更新表,使其發生row migration。
> update t set b=rpad('*',4000,'*') where a=1;
1 row updated.
> update t set b=rpad('*',4000,'*') where a=2;
1 row updated.
--由於block_size=8192,此時 a=3 的行發生行遷移
> update t set b=rpad('*',4000,'*') where a=3;
1 row updated.
> commit;
Commit complete.透過analyze語句檢視
> ANALYZE TABLE t LIST CHAINED ROWS INTO CHAINED_ROWS;
Table analyzed.
> select * from CHAINED_ROWS;
OWNER_NAME TABLE_NAME CLUSTER_NA PARTITION_ SUBPARTITI HEAD_ROWID ANALYZE_T
---------- ---------- ---------- ---------- ---------- ------------------ ---------
z T N/A AAADT1AABAAAGEKAAC 30-NOV-10
> select rowid,a from t;
ROWID A
------------------ ----------
AAADT1AABAAAGEKAAA 1
AAADT1AABAAAGEKAAB 2
AAADT1AABAAAGEKAAD 4
AAADT1AABAAAGEKAAC 3此時再更新 a=4 的行,發生行遷移
> update t set b=rpad('*',4000,'*') where a=4;
1 row updated.
> commit;,
Commit complete.
> ANALYZE TABLE t LIST CHAINED ROWS INTO CHAINED_ROWS;
Table analyzed.
> select * from CHAINED_ROWS;
OWNER_NAME TABLE_NAME CLUSTER_NA PARTITION_ SUBPARTITI HEAD_ROWID ANALYZE_T
---------- ---------- ---------- ---------- ---------- ------------------ ---------
z T N/A AAADT1AABAAAGEKAAC 30-NOV-10
z T N/A AAADT1AABAAAGEKAAC 30-NOV-10
z T N/A AAADT1AABAAAGEKAAD 30-NOV-10
記於 2010年11月30日
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23650854/viewspace-682653/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Row Migration and Row Chaining(行遷移和行連結)AI
- 【轉載】行遷移和行連結(row chaining or row migration)AI
- Oracle資料表預設值列新增與行遷移(Row Migration)Oracle
- 行連結(Row chaining)和行遷移(Row Migration)的讀書筆記AI筆記
- Oracle行遷移實驗Oracle
- oracle實驗記錄 (ROW 壓縮,遷移,連結)Oracle
- Row Migration和row chainedAI
- 行遷移測試實驗(轉載)
- 選出有行連線(row chain)或者是行遷移(row migeration)的表AI
- Laravel migration (資料庫遷移) 的使用Laravel資料庫
- 雲資料遷移(Cloud Data Migration,CDM)Cloud
- oracle效能診斷例項-row migration and row chainOracleAI
- 【效能優化】消除行遷移 table fetch continued row優化
- Mongo資料遷移實驗Go
- 【效能最佳化】消除行遷移 table fetch continued row
- sql中row_number over語句SQL
- MySQL語句執行分析(一)MySql
- MySQL語句執行分析(二)MySql
- 【實驗】【analyze】分析特定使用者的表和索引索引
- ORACLE UPDATE 語句語法與效能分析Oracle
- Laravel 使用 sql 語句 和 sql 檔案 來建立執行資料庫遷移LaravelSQL資料庫
- sql語句執行緩慢分析SQL
- dbms_stats與analyze分析彙總
- flask之控制語句 if 語句與for語句Flask
- 查詢行遷移及消除行遷移(chained rows)AI
- 【備份恢復】行遷移與行連結
- oracle使用profiler分析語句執行效率Oracle
- 通過分析SQL語句的執行計劃優化SQL語句SQL優化
- 使用 NFS 的資料遷移實驗過程NFS
- Duplicate+NFS資料遷移實驗過程NFS
- 資料庫遷移之資料泵實驗資料庫
- Oracle 行遷移 & 行連結的檢測與消除Oracle
- 【實驗】Oracle審計語句的使用演示Oracle
- 行遷移測試
- oracle遷移資料經驗Oracle
- OCM實驗-使用線上重定義方式遷移表
- [Database Migration] 記一次未達預期的資料庫遷移Database資料庫
- Oracle資料庫中資料行遷移與行連結Oracle資料庫