oracle导出数据特别慢_expdp导出速度变慢原因的分析

本文通过对比生产与测试环境的数据库参数,发现在导出数据时,优化模式和db_file_multiblock_read_count设置不同可能导致导出速度差异。通过调整参数并进行跟踪分析,发现重建索引时数据块更新过快会影响导出速度,特别是在非业务高峰期。这为解决类似问题提供了思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先比较了两个环境的数据库,发现生产和测试的几个参数略有不同。生产环境因为应用的特殊性,优化模式是RULE,而测试环境为默认的ALL_ROWS。另外db_file_multiblock_read_count这个参数生产环境是16,而测试环境为64。

更改了这几个参数的设定,使测试环境跟生产一致。然后重新导出。跟踪了一下进程,做了个trace,过程如下:

查找当前正在运行的SID:select

sid,username,program,status from V$session where status='ACTIVE'

and

username<>'SYS';(sid=424)

查找该session对应的SPID:select *

from V$process where addr=(select paddr from V$session where

sid=424);(spid=26087)

设定需要跟踪的进程号:oradebug setospid 26087

设定事件的跟踪级别:oradebug event 10046 trace name context forever,level

12;

查看trace文件的名称:oradebug tracefile_name

查看trace文件中直接路径读的延时信息:cat c2_dw01_29428.trc|grep direc|more

结果是这样的:

WAIT #49: nam='direct path read' ela= 28 file number=6 first

dba=1488 block cnt=16 obj#=22742 tim=4758196513709

WAIT #49: nam='direct path read' ela= 13 file number=6 first

dba=1536 block cnt=9 obj#=22742 t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值