如果把文件本身存到数据库,由oracle来管理,会便于管理!
这一点很清楚。但,这个数据库又用于联机事务处理,每天都会需要响应相当的事务。
如果,这些事务需要将数据,以及几十份图片/每天 (每份图片300k)上传到服务器,这样的话,会不会响应时间很慢?寻求解决方案!谢谢!

解决方案 »

  1.   

    如果图片文件的大小确实有300G,最好不要存入ORACLE内,建议在ORACLE中只保存文件路径,但要主要删除文件时的处理。
    当然都保存在ORACLE中也无不可,如果只是上传图片,按你说的大小应该没有问题。具体影响到什么程度,我也没有试过,不过ORACLE9i中提供了分区功能,如果合理分区和创建索引应该不会有太多影响吧。
      

  2.   

    创建表时,像以下做法:
    CREATE TABLE lob_tab (col1 BLOB, col2 CLOB)
       STORAGE (INITIAL 256 NEXT 256)
       LOB (col1, col2) STORE AS
          (TABLESPACE lob_seg_ts
           STORAGE (INITIAL 6144 NEXT 6144)
           CHUNK 4000
           NOCACHE LOGGING);或楼上所说,分区表方法:
    CREATE TABLE PT (A NUMBER, B BLOB, C CLOB, D CLOB)
       LOB (B,C,D) STORE AS (STORAGE (NEXT 20M))
       PARTITION BY RANGE (A) 
       (PARTITION P1 VALUES LESS THAN (10) TABLESPACE TS1
          LOB (B,D) STORE AS (TABLESPACE TSA STORAGE (INITIAL 20M)),
       PARTITION P2 VALUES LESS THAN (20)
          LOB (B,C) STORE AS (TABLESPACE TSB)
       TABLESPACE TSX;
      

  3.   

    如果存放在数据库中,300G的大小的数据库,备份与恢复将变的更复杂。
    不可能采用exp/imp来备份了,你必须采用rman来备份
      

  4.   

    对于这样的情况!
    beckham的方式应该可以!!!这样的话!你没有必要把这些图片存放在表中!在表中只存放图片的相对路径或者是绝对路径!!这样应该不怎么会影响oracle的性能!
      

  5.   

    我很同意 penitent(只取一瓢) 的说法还有数据用于联机事务处理,多少会影响性能