本人从事的是J2EE程序设计, 对数据库只会把业务逻辑转化为数据表.
现有一个难题, 请大家帮忙, 谢谢.要存储的数据分文字和图片,文字现有 50G, 每年增长 200 M, 这个文字的数据量好像并不大,是不是?
图片现有 15万张,每张约 1M,每年增长约 4000张。
使用oracle9i数据库,windows2003server。我的问题是:图片存数据库的话:
1、表空间、数据文件、日志文件、UNDO文件,这些文件大小和数量,如何分配;
2、数据库的其他参数,如,SGA等如何分配。图片不存数据库的话,该如何设计数据库?谢谢。

解决方案 »

  1.   

    1.一般情况下,硬盘都是做了RAID的,所以文件放在哪儿关系不大。如果没有做RAID,可以自己决定文件存放在哪儿的话,建议将数据文件,日志文件分在不同的磁盘上存放,主要是从IO上考虑。
    2.数据文件一般按照你自己的数据量的大小除以70%,比如算出来是70M,实际安排100M给它
    3.日志文件的大小要看你的事务的繁忙程度,建议你先设置个一两百M,然后做个测试,观察日志文件的频繁程度,调整日志文件的大小,以便日志文件的一般在十几二十几分钟切换一次为宜
    4.SGA常见的是分配物理内存的3/8左右,但是这也要看你的机器有多少内存,是否跑应用,能分给数据库的有多少,一般情况下给SGA多分点有好处。另外做个测试,看看数据缓冲命中率,SQL命中率等。
    5.图片建议存放在文件中,在数据库中存放这些文件的路径。总之一句话,没有一个绝对的标准告诉你这个该分多少,那个该分多少,这些都跟你的应用相关的,先配置一个初始值后续通过测试来确定一个精确值。
      

  2.   

    文件、图片量还是有点的,数据库只存路径。
    文字如果是纯txt且每条记录不超过4000可以用varchar2,不超过500k可以用CLOB来存。太大的话还是建议存文件系统了。
    如果是分布式应用,记得加上个文件分发同步程序(存数据库就没这个麻烦了)。