不是,我清理过了,日志只有10M左右,就那个MDB文件已经接近20G了

解决方案 »

  1.   

    有人遇到过这样的问题吗?如何解决的
    难道是我数据库中的字段有问题,有varchar=4000的字段,还有image字段,别的都正常在varchar<200内
      

  2.   

    收缩一下你的数据库。在数据库属性中设置为自动收缩,或者用语句试一下。好象是sp_shinkdb。
      

  3.   

    存量问题不一定,因为你放了一些文件在数据库里,可能用的TEXT或者IMAGE字段,文件的大小谁也说不清楚(多少都有可能).
      

  4.   

    你建索引了吗?
    40w的记录20g太夸张了,你要好好检查哦。
    我的一个记录110报警记录的程序都一年多了都没到1g。
      

  5.   

    你的问题我想到如下调整,不妨一试:
    1、根据记录的需要调整字段及其大小,可用字典项的用字典项,可以有效地减少空间并提高效率。
    2、根据查询需要建立相应的索引。这一点非常重要。结构与查询优化好了,数据库不怕大。
    3、你的库有4K的大文本,可以改用TEXT类型试试看,若有大量在线写,或是大量灌数据时,不妨把库的属性设为truncate log on checkpoint。
    4、适当地调整SQLSERVER的配置,比如,锁的数量、内存等等。可以找以前的有关优化的贴子看看。
      

  6.   

    给数据库另外加一个文件组(FileGroup),其中指定的文件(.ndf)放在另外一个硬盘上。将这个表的text和image字段放在这个文件组上。
    查询的时候尽量不要取text和image字段,在确实要打开这个字段时再单独提交一个查询语句到数据库里把它查出来.
      

  7.   

    同意 玩玩儿将 text、ntext 和 image 字段存储在另外的文件组中。
    查询的时候尽量不要取text、ntext 和 image 字段,在确实要打开这个字段时再单独提交一个查询语句到数据库里把它查出来。
    不要为了方便,用 select * from table1TEXTIMAGE_ON
    是表示 text、ntext 和 image 列存储在指定文件组中的关键字。如果表中没有 text、ntext 或 image 列,则不能使用 TEXTIMAGE ON。如果没有指定 TEXTIMAGE_ON,则 text、ntext 和 image 列将与表存储在同一文件组中。
      

  8.   

    你可以利用查询分析器的执行计划看看你的查询sqlserver是怎么处理的,然后建立相应的索引,可能会好点
      

  9.   

    你应先优化一下数据库,然后可将部分数据可建立更改为READONLIY即可
      

  10.   

    dbcc checkdb 这个命令有可能对表的查询会有改善。