大事务回滚估算
来源:互联网 发布:以知开头的成语接龙 编辑:程序博客网 时间:2024/05/22 06:20
在系统上线、日常运维时,难免会出现由于SQL效率不佳,或者写错,导致出现回滚的现象;在大事务时,回滚常常耗时很久,如何较为准确得估算回滚的时间,可以帮助我们制定相应的计划:
–准备数据
SQL> create table testpp as select pk_person from person where rownum<1000000;Table created. SQL> create index i_pp on testpp (pk_person); Index created. 进行删除操作SQL> delete from TESTPP where rownum<950000; 949999 rows deleted. SQL> rollback; 查询当前事务的回滚数据量 16:40:50 SQL> select t.ses_addr,t.used_urec from v$transaction t; SES_ADDR USED_UREC ---------------------------- ---------- 0700010130EBD998 1899998 `其中SES_ADDR:User session object address USED_UREC:Number of undo records used 由于测试表创建了索引,因此回滚的数据量除了表数据外,还包含了索引数据,所以总的数据量为1899998 16:42:09 SQL> / SES_ADDR USED_UREC ---------------- ---------- 070001012D1070C0 3 0700010130EBD998 1501572 再进行查询,从两个时间间隔中就可以估算每分钟回滚的数据量了。 为了确认该回滚就是对应的之前的sql,可通过如下方法:
select s.osuser,s.program,s.sql_hash_value,s.sql_id,s.prev_sql_id from v$transaction t,v$session s where t.ses_addr = s.saddr; OSUSER PROGRAM SQL_HASH_VALUE SQL_ID PREV_SQL_ID ---------- ---------------------------------------- -------------- ------------- ------------- logcx sqlplus@T187PC16VM14 (TNS V1-V3) 0 9085cz60z4pg3 SQL> select sql_text from v$sql where sql_id='9085cz60z4pg3'; SQL_TEXT ------------------------------------------ delete from TESTPP where rownum<950000
符合我们的预期!
“`
0 0
- 大事务回滚估算
- 回滚估算
- 大事务回滚导致系统故障案例一则
- SqlServer事务回滚
- 事务无法回滚
- 事务回滚
- 事务回滚处理
- 事务回滚反思
- c# 事务回滚
- 事务回滚
- 异常、事务回滚
- jdbc事务-回滚
- 事务回滚
- Spring事务回滚
- 事务回滚
- 事务回滚
- Mysqli:事务回滚
- spring事务回滚
- 测试
- 循环节长度
- ubuntu下硬盘无损分区移动修改工具
- Gson
- 1004. 成绩排名 (20)
- 大事务回滚估算
- USACO Palindromic Squares 回文平方数
- USB虚拟串口实验_STM32F1开发指南_第五十三章——USB学习笔记
- 黑马学习笔记--JAVA面向对象
- PAT-A 1088. Rational Arithmetic (20)
- nginx安装配置
- Android性能优化典范(四)
- 封装QtCore
- 洛谷2607,codevs1919,codevs2820,环套树