容易遗忘的手工并行

    去查询一个大表时, 大家都不会忘记Oracle的并行(Parallel)操作, 比如:

CREATE TABLE xxx PARALLEL 4 AS SELECT /*+ PARALLEL(...) */
SELECT /*+ PARALLEL(...) */ FROM ...

    但手工并行则易被忘记, 一个朋友花了28小时导出300多G的带BLOB的表, 我的第一反应就是为什么不用并行? 这时是指手工并行. 使用exp的Query参数.

exp ... query=\"where mod(pk,4) = 0\"
exp ... query=\"where mod(pk,4) = 1\"
exp ... query=\"where mod(pk,4) = 2\"
exp ... query=\"where mod(pk,4) = 3\"

    由于LOB默认设置是NOCACHE, 因此导出LOB是很慢的, 采用多个进程进行导出, 可以节约很多的时间. 28小时的痛苦时间, 可以缩短为7小时, 或更短.

    要想办法偷懒, 这才是DBA的好生活.

留言 (4)

那么, 作为DBA, 你过得幸福吗?

嘿嘿.

我这种做法就当苦中作乐吧.

关于DBA的好生活,

以前跟Fenng讲过一点, 就是碰到棘手问题(比如一些特定条件下产生的Oracle Bug), 绕过去, 别硬闯.

不懂是什么意思?
where mod(pk,4) = 0,pk是指什么?

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • I have some difficulty in expressing myself.
  • 我表达起来有点困难.
  • I'm always confused with
  • "s" and "th". 我常把s和th搞混.
  • Can you write in English?
  • 你能用英文写文章吗?
  • Your pronunciation is excellent.
  • 你的发音很好.
  • How can I improve my spoken English?
  • 我该怎样才能提高口语水平?