检查行链接和行迁移的方法
2006-05-03 13:42
453 查看
1.执行
utlchain.sql脚本
SQL> CREATE TABLE chained_rows (
2 owner_name VARCHAR2(30),
3 table_name VARCHAR2(30),
4 cluster_name VARCHAR2(30),
5 partition_name VARCHAR2(30),
6 head_rowid ROWID,
7 analyze_timestamp DATE );
创建chained_rows表,然后分析
SQL> ANALYZE TABLE oe.orders LIST CHAINED ROWS;
Table analyzed.
SQL> SELECT owner_name, table_name, head_rowid
2 FROM chained_rows
3 WHERE table_name = 'ORDERS';
OWNER_NAME TABLE_NAME HEAD_ROWID
---------- ---------- ------------------
SALES ORDER_HIST AAAAluAAHAAAAA1AAA
SALES ORDER_HIST AAAAluAAHAAAAA1AAB
2.对行迁移的处理
a).exp/drop/imp table
b).alter table emp move ...;
c).查找迁移的行,拷贝迁移的行到一个新表,删除原记录,然后从新表将行拷贝到原表
3.相关的脚本
/* Get the name of the table with migrated rows */
ACCEPT table_name PROMPT 'Enter the name of the table with migrated rows: '
/* Clean up from last execution */
SET ECHO OFF
DROP TABLE migrated_rows;
DROP TABLE chained_rows;
/* Create the CHAINED_ROWS table */
@?/rdbms/admin/utlchain
SET ECHO ON
SPOOL fix_mig
/* List the chained & migrated rows */
ANALYZE TABLE &table_name LIST CHAINED ROWS;
[align=left]------------------------------------------------------------------------[/align]
[align=left] [/align]
[align=left]/* Copy the chained/migrated rows to another table */ [/align]
[align=left]CREATE TABLE migrated_rows AS [/align]
[align=left] SELECT orig.* [/align]
[align=left] FROM &table_name orig, chained_rows cr [/align]
[align=left] WHERE orig.rowid = cr.head_rowid [/align]
[align=left] AND cr.table_name = upper('&table_name'); [/align]
[align=left][/align]
[align=left]/* Delete the chained/migrated rows from the original table */ [/align]
[align=left]DELETE FROM &table_name [/align]
[align=left]WHERE rowid IN ( [/align]
[align=left] SELECT head_rowid [/align]
[align=left] FROM chained_rows); [/align]
[align=left][/align]
[align=left]/* Copy the chained/migrated rows back into the original table */ [/align]
[align=left]INSERT INTO &table_name [/align]
[align=left] SELECT * [/align]
[align=left] FROM migrated_rows; [/align]
[align=left]SPOOL OFF [/align]
[align=left][/align]
utlchain.sql脚本
SQL> CREATE TABLE chained_rows (
2 owner_name VARCHAR2(30),
3 table_name VARCHAR2(30),
4 cluster_name VARCHAR2(30),
5 partition_name VARCHAR2(30),
6 head_rowid ROWID,
7 analyze_timestamp DATE );
创建chained_rows表,然后分析
SQL> ANALYZE TABLE oe.orders LIST CHAINED ROWS;
Table analyzed.
SQL> SELECT owner_name, table_name, head_rowid
2 FROM chained_rows
3 WHERE table_name = 'ORDERS';
OWNER_NAME TABLE_NAME HEAD_ROWID
---------- ---------- ------------------
SALES ORDER_HIST AAAAluAAHAAAAA1AAA
SALES ORDER_HIST AAAAluAAHAAAAA1AAB
2.对行迁移的处理
a).exp/drop/imp table
b).alter table emp move ...;
c).查找迁移的行,拷贝迁移的行到一个新表,删除原记录,然后从新表将行拷贝到原表
3.相关的脚本
/* Get the name of the table with migrated rows */
ACCEPT table_name PROMPT 'Enter the name of the table with migrated rows: '
/* Clean up from last execution */
SET ECHO OFF
DROP TABLE migrated_rows;
DROP TABLE chained_rows;
/* Create the CHAINED_ROWS table */
@?/rdbms/admin/utlchain
SET ECHO ON
SPOOL fix_mig
/* List the chained & migrated rows */
ANALYZE TABLE &table_name LIST CHAINED ROWS;
[align=left]------------------------------------------------------------------------[/align]
[align=left] [/align]
[align=left]/* Copy the chained/migrated rows to another table */ [/align]
[align=left]CREATE TABLE migrated_rows AS [/align]
[align=left] SELECT orig.* [/align]
[align=left] FROM &table_name orig, chained_rows cr [/align]
[align=left] WHERE orig.rowid = cr.head_rowid [/align]
[align=left] AND cr.table_name = upper('&table_name'); [/align]
[align=left][/align]
[align=left]/* Delete the chained/migrated rows from the original table */ [/align]
[align=left]DELETE FROM &table_name [/align]
[align=left]WHERE rowid IN ( [/align]
[align=left] SELECT head_rowid [/align]
[align=left] FROM chained_rows); [/align]
[align=left][/align]
[align=left]/* Copy the chained/migrated rows back into the original table */ [/align]
[align=left]INSERT INTO &table_name [/align]
[align=left] SELECT * [/align]
[align=left] FROM migrated_rows; [/align]
[align=left]SPOOL OFF [/align]
[align=left][/align]
相关文章推荐
- python友情链接检查方法
- vmware中启动网卡提示:正在决定 eth0 的 IP 信息...失败;无链接。检查电缆吗?问题的解决方法
- QTP检查链接对象的两种方法
- 从vs2005或者vs2008迁移到vs2010链接错误: fatal RC1106: invalid option: -ologo 修正方法
- vmware中正在决定 eth0 的 IP 信息...失败;无链接。检查电缆吗?问题的解决方法
- php中检查某个链接是否存在的两个方法
- 检查行迁移的方法
- 行链接和行迁移检测和消除方法
- QTP检查链接对象的两种方法
- 微软CRM 3.0迁移后”报表”链接打开报错解决方法!
- python友情链接检查方法
- 行链接和行迁移检测和消除方法
- SQL_SERVER 2005 通过链接服务器(Linked Server)访问 ORACLE 的方法
- PHP 链接ACCESS 数据库最简单的方法
- Android内存泄漏的简单检查与分析方法
- DEDE CMS添加迅雷专用下载链接的方法
- find命令实例 linux日志定期迁移实现方法
- [转]mysql性能的检查和调优方法
- 如何检查你的友情链接是否还在?