网站首页

家园论坛

老版论坛

家园博客

业界新闻

技术文档

下载中心

速查中心

图片中心

硬件资讯
上一篇:Delphi中数据的自动录入 下一篇:没有了
经验技巧:分享两条Delphi开发经验

来源: 作者: 添加日期:2007-11-16 20:05:07 点击次数:

  但是,我们经过测试发现:启用此功能后,我们在对这个数据库操作时,就不能用事务操作了,程序执行到BeginTranSaction时就报错,不能执行下去,由于我们不能在对此库的操作中保证100%的正确性,因此我们还需要事务,因此这种方法适用空间有限,也不能满足我们程序的需求。

  我们还得继续查找.....

  (2)处理过程中允许记录日志,但要对日志文件进行处理,时时缩小它。

  SQL Server的联机帮助告诉我们:

  在下列情况下,日志文件的物理大小将减少:

  执行 DBCC SHRINKDATABASE 语句时。

  执行引用日志文件的 DBCC SHRINKFILE 语句时。

  自动收缩操作发生时。

  下面我们逐个分析这三个方案:

  ① DBCC SHRINKDATABASE:收缩特定数据库的所有数据和日志文件,包含我们的需求,但也大于我们的需求,此方案可用,但不要着急,给人的感觉是买了一件能穿的衣服,但尺寸大了些,穿在身上有点不舒服,我们接着分析以下两个方案...

  ② DBCC SHRINKFILE: 收缩相关数据库的指定数据文件或日志文件大小。与方案1的区别仅一字之差:“和”与“或”,相当于把方案1拆成两步来执行,我们需要的就是收缩日志文件,因此,它对我们来说显得比较合适,有点量体裁衣的感觉。但还有没有更好的呢,我们来看第三个方案...

  ③自动收缩:数据库也可设置为按给定的时间间隔自动收缩,服务器定期检查每个数据库中的空间使用情况。如果发现数据库中有大量闲置空间,而且它的 autoshrink 选项设置为 true,SQL Server 就缩小该数据库中的文件大小。它是周期性的执行DBCC SHRINKDATABASE,既然方案1已经是一件尺寸大了一些的衣服,则此方案就相当于又穿上了N件大尺寸衣服,一件就已经够了,我还要那么多干嘛呢??

  综合对比发现,方案2正是我们需要的。

  DBCC SHRINKFILE ('+Trim(edDBMC.Text)+'_Log, TRUNCATEONLY)

  经过这个语句处理以后,日志文件将回到它的最小状态504KB,任何的日志记录都将清空。

  再结合我们的工具,复制完一个表之后,我们就执行方案2,处理过程中日志文件暂时占用的最大空间也就是处理最大数据表时产生的日志空间,但最后都将清空,显示为500多KB,相对于庞大的数据文件而言,微之戡微.

本新闻共2页,当前在第2页  1  2  

 
设为首页 | 加入收藏 | 业务办理 | 友情链接 | 论坛版面 | 浙ICP备07502118号 |