vb调用下面的存储过程插入图片
CREATE OR REPLACE PROCEDURE "PIC_INSERT"  (PID VARCHAR2,FILENAME VARCHAR2) IS
F_LOB BFILE;
B_LOB BLOB;
BEGIN
INSERT INTO PIC_LOB(PIC_ID, PIC)
VALUES (PID,EMPTY_BLOB ()) RETURN PIC INTO B_LOB;
F_LOB:= BFILENAME ('INPUTPIC', FILENAME);
DBMS_LOB.FILEOPEN (F_LOB, DBMS_LOB.FILE_READONLY);
DBMS_LOB.LOADFROMFILE (B_LOB,F_LOB,DBMS_LOB.GETLENGTH (F_LOB),1,1);
DBMS_LOB.FILECLOSE (F_LOB);
COMMIT;
END;后来数据库达到800多万张图片,警告日志文件出现如下错误:
Fri Nov 21 00:16:13 2008
Errors in file d:\oracle\admin\mydata\bdump\mydataCJQ0.TRC:
ORA-00604: error occurred at recursive SQL level 1
ORA-01003: no statement parsed
可能是空间不够了,删除一些图片后,日志文件不在出错,但插入速度明显降低
请教各位这是怎么回事,是什么原因让插入速度降下来的,不应该是数据多的原因吧,
因为之前插入速度是很快的

解决方案 »

  1.   

    d:\oracle\admin\mydata\bdump\mydataCJQ0.TRC
    文件中如何说?
      

  2.   

    改用ORDIMAGE字段存储会不会好些
      

  3.   


    sql>select table_name,num_rows,CHAIN_CNT from user_tables where table_name='你的表名'; 看看有没有行链接之类的,如果有:sql>alter table 你的表名 move; --消除...
    另外就是,你建表的时候,把图片的BLOB字段存到另外的表空间了吗?
      

  4.   

    mydataCJQ0.TRC 中的内容如下,
    *** 2008-11-24 14:48:29.000
    ORA-00604: error occurred at recursive SQL level 1
    ORA-01003: no statement parsed
    *** 2008-11-24 14:48:35.000
    ORA-00604: error occurred at recursive SQL level 1
    ORA-01003: no statement parsed
    *** 2008-11-24 14:48:40.000
    ORA-00604: error occurred at recursive SQL level 1
    ORA-01003: no statement parsed
    *** 2008-11-24 14:48:45.000
    ORA-00604: error occurred at recursive SQL level 1
    ORA-01003: no statement parsed另外图片的BLOB字段不在另外的表空间
      

  5.   

    给表空间添加一个数据文件试试看,
    另外trace一下你的sql语句,看看问题再那里