小编Dou*_*ell的帖子

对于大于32kb的文件,BLOB导出速度很慢

我需要从我们的Oracle 11g(11.2.0.3)系统导出BLOB.该过程适用于<32,767字节的BLOB(JPG照片).我可以使用dbms_log.read和utl_file.put_raw在5秒内将约4000张照片导出到数据库服务器上的本地目录.如果文件超过读缓冲区的32,767字节限制,那么这就是性能问题的开始.我已经看过关于确切性能问题的类似帖子,但所提供的解决方案已经被研究过但没有成功.基于监视工具,CPU,I/O和内存在导出期间不会受到压力.我试图理解为什么较大的BLOB(所有它们都在100K以下)必须以32,767字节增量拼接在一起,与32,767字节以下的BLOB相比,具有如此巨大的输出缓慢.导出大型BLOB时,每个文件最多可能需要15秒才能导出.

慢速斑点提取的相关文章

BLOB导出调优的相关文章

有没有人经历过BLOB导出缓慢,文件大于32,767字节?

DECLARE

  CURSOR cur_photo IS
    select  substr(c.custnum, -7, length(c.custnum)) custnum,
            cp.cust_id,
            cp.photo 
    from customer c
    inner join customer_photo cp
      on c.cust_id = cp.cust_id
    inner join customer_def_grp_value cdv
      on c.cust_id = cdv.cust_id;

  select_sql varchar2(225);
  l_file      UTL_FILE.FILE_TYPE;
  l_buffer    RAW(32767);
  l_amount    PLS_INTEGER := 32767;
  l_pos       PLS_INTEGER := 1;
  l_blob      BLOB;
  l_blob_len  PLS_INTEGER;
  l_filename  varchar2(225);
  error_number varchar2(225);
  error_message varchar2(225);

BEGIN
  --dbms_output.put_line('Starting at: ' || to_char(systimestamp, 'DD-MON-YYYY HH:MI:SS.FF6'));
  --DBMS_OUTPUT.ENABLE (buffer_size => NULL); 
  FOR custphoto IN cur_photo LOOP
    --dbms_output.put_line('In the loop ' …
Run Code Online (Sandbox Code Playgroud)

performance blob export oracle11g utl-file

2
推荐指数
1
解决办法
3374
查看次数

标签 统计

blob ×1

export ×1

oracle11g ×1

performance ×1

utl-file ×1