日期:2014-05-17  浏览次数:20612 次

为什么最近MDF文件不更新了呢?
最近几天我发现网站的数据库MDF文件不更新了,但是网站还可以添加信息,前台也正常显示,我重新启动SQL,MDF得到更新,数据没有丢失,可是我再对数据库进行操作,MDF和LDF都不更新,请问我的数据库哪里出错了 ?

------解决方案--------------------
不更新什么概念
------解决方案--------------------
你怎么知道mdf文件没有更新?
------解决方案--------------------
这跟OS有关,跟数据库无关。


------解决方案--------------------
SQL服务已经启动,只要有u/i/d事务产生,就会更数据。

请说明,您的目的?
------解决方案--------------------
对mdf显示的时间:
1,在分离或附加时,会改变。
2.空间满后,自动扩展也会改变。
3,如果单纯的插入,删除数据是不会改变文件的时间。

在1,2条件的触发下,才会导致数据文件的最后修改时间(lastAccessTime)发生改变。


没有找到这方面的资料,下面是个人看法,仅供参考:

1,我们常见的像txt,doc文件,都是单个文件,OS在处理这些文件的时候,会在内存里产生相关的Handle,这些Handle是对应单个文件的,所以在每次修改txt,doc文件的内容时,handle的信息会同样更新,这也包括了最后修改时间;

2,对于数据文件和日志文件而言,OS不是直接对单个数据文件产生相关的HANDLE来处理,而是通过SQLOS(2005 和 2008)或者UMS (sqlserver 2000)里的Access method模块来操作数据文件的,这个时候根本就不关OS的什么事,所以修改时间的属性就不会发生改变;

3,如果文件需要扩展时,文件控制权又交到了OS手上,修改时间就会发生改变了。