實驗:行遷移與分析語句 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 遷移執行緒migration執行緒
- Laravel migration (資料庫遷移) 的使用Laravel資料庫
- 雲資料遷移(Cloud Data Migration,CDM)Cloud
- sql中row_number over語句SQL
- MySQL語句執行分析(一)MySql
- MySQL語句執行分析(二)MySql
- Laravel 使用 sql 語句 和 sql 檔案 來建立執行資料庫遷移LaravelSQL資料庫
- 【YashanDB知識庫】由於hist_head$中analyze time小於tab$中analyze time導致的sql語句執行慢SQL
- sql語句執行緩慢分析SQL
- flask之控制語句 if 語句與for語句Flask
- [20180327]行遷移與ITL浪費.txt
- [Database Migration] 記一次未達預期的資料庫遷移Database資料庫
- Cloudflare 從 PHP 到 Go:遷移與經驗分享CloudPHPGo
- Jenkins搭建與資料遷移實踐Jenkins
- 在非 laravel 專案中使用 laravel 的特性 4: 資料庫遷移 migrationLaravel資料庫
- [20230425]CBO cost與行遷移關係.txt
- [20190120]行連結遷移與dml.txt
- PostgreSQL的insert語句執行過程分析SQL
- [20181119]sql語句執行緩慢分析.txtSQL
- Oracle 行遷移 & 行連結的檢測與消除Oracle
- insert into select語句與select into from語句
- switch語句逆向分析
- Oracle執行語句跟蹤 使用sql trace實現語句追蹤OracleSQL
- [20180402]行連結行遷移與ITL槽6.txt
- xtts遷移實踐TTS
- Oracle資料庫中資料行遷移與行連結Oracle資料庫
- 資料庫平滑遷移方案與實踐分享資料庫
- [20200326]dbms_monitor跟蹤與SQL語句分析.txtSQL
- 【DSL】Elasticsearch之Analyze(分析過程)Elasticsearch
- 表示式與語句
- 【Redis 技術探索】「資料遷移實戰」手把手教你如何實現線上 + 離線模式進行遷移 Redis 資料實戰指南(scan模式遷移)Redis模式
- ORACLE 資料庫 查詢語句與DML語句Oracle資料庫
- PV 與 PVC 狀態遷移
- [20201105]再分析sql語句.txtSQL
- sql語句執行順序與效能優化(1)SQL優化
- 伯克利AI實驗室出品:用GAN實現字型風格遷移AI
- ANALYZE導致的阻塞問題分析
- 從 Oracle 到 TiDB,全鏈路資料遷移平臺核心能力和杭州銀行遷移實踐OracleTiDB
- JavaScript break與continue語句JavaScript