日期:2014-05-16  浏览次数:20998 次

关于ORACLE BLOB字段的插入问题
表结构如下:数据文件N多个,表空间利用率60%
create table ZJVIO_NB.VIO_TEMP_IMG
(
  LSH NUMBER not null,
  XH VARCHAR2(16),
  ZJ1 BLOB,
  ZJLB1 VARCHAR2(10),
  ZJ2 BLOB,
  ZJLB2 VARCHAR2(10),
  ZJ3 BLOB,
  ZJLB3 VARCHAR2(10),
  ZJ4 BLOB,
  ZJLB4 VARCHAR2(10),
  ZJ5 BLOB,
  ZJLB5 VARCHAR2(10)
)
tablespace ZJVIO_TEMP_IMG
  pctfree 10
  pctused 40
  initrans 1
  maxtrans 255
  storage
  (
  initial 72K
  next 56K
  minextents 1
  maxextents unlimited
  pctincrease 0
  );
-- Create/Recreate primary, unique and foreign key constraints 
alter table ZJVIO_NB.VIO_TEMP_IMG
  add constraint PK_VIO_TEMP_IMG_LSH primary key (LSH)
  using index 
  tablespace ZJVIO_TEMP_IMG
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
  initial 72K
  next 56K
  minextents 1
  maxextents unlimited
  pctincrease 0
  );
刚开始对zj1、zj2插入图片,每张图片1M左右,刚开始插入很快。后来渐渐要一分钟,到现在zj1、zj2已经无法插入。换成把图片插入到zj3、zj4,很快,一s左右,运行3、4天变成3s。我想再过一段时间zj3、zj4插入也会变慢到无法再插入。最后字段用完这个表无法再插入信息。
delete数据之后发现插入没有变快。alter table move之类的了解过,好像不管用,这个表的数据700G,move应该行不通。
请问:该怎么办。

------解决方案--------------------
探讨

昨天晚上测试了一下,改成直接插入速度没有提升。
按照你的代码写了个单例测试了几张图片,zj1、zj2速度插入依然很慢,十多分钟。剩下的字段3s,1.5M左右的图片。
我现在想这样下去会不会越来越慢?能不能通过删除数据使插入速度变快?