【问题标题】:How to know how much temp table space required for expdp job? [duplicate]如何知道 expdp 作业需要多少临时表空间? [复制]
【发布时间】:2018-04-03 20:20:07
【问题描述】:
expdp $DBNAME directory=ar_exp content=data_only dumpfile=${tablename}.dmp logfile=${tablename}.log tables=$tablename query=$SCHNAME.$tablename:'"where substr('$fieldname',1,5) in('$cpidlst')"'

这里这个操作需要临时表空间,但是需要多少临时表空间怎么计算呢?

【问题讨论】:

  • 我还没有得到答复,你们将其标记为重复

标签: oracle tablespace expdp


【解决方案1】:

除了估计答案的链接之外,这里还有一个脚本,我们可以用它来找出正在使用的温度。您必须找到 expdp 会话的 SID,然后将其加入 WHERE 子句。

select
  s.sid,
  s.serial#,
  p.spid "OS SID",
  s.sql_hash_value "HASH VALUE",
  s.username "ORA USER",
  s.status,
  s.osuser "OS USER",
  s.machine,
  s.terminal,
  s.type,
  s.program,
  s.logon_time,
  s.last_call_et,
  su.contents, 
  ROUND(((su.blocks*param.value)/1024/1024),2) "MB",
  tablespace,
  s.sql_id
FROM 
  v$session s, v$sort_usage su, v$process p, v$parameter param
WHERE 
  param.name  = 'db_block_size' and
  su.session_addr = s.saddr and
  p.addr = s.paddr
ORDER BY 
  su.blocks DESC;

找到会话的 SID 后:

  1. 将其加入 V$SQL_TEXT 并获取 SQL_TEXT
  2. 了解如何创建 PLAN_TABLE
  3. 对您在步骤 1 中找到的 SQL_TEXT 运行“explain plan into plan_table”
  4. 从 PLAN_TABLE 中选择 TEMP_SPACE;

这应该会给你一个估计;但是我从来没有发现这个估计是准确的。最好的方法是观看会话运行,然后在必要时重复使用上面的脚本。

【讨论】:

  • 我想知道根据哪里条件需要多少?
  • 我现在就更新答案...
猜你喜欢
  • 2014-12-13
  • 2011-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-13
  • 1970-01-01
  • 2010-12-30
相关资源
最近更新 更多