51代码网ORACLEMYSQLSQL SERVER其它数据库java/jspasp/asp.netC/C++/VC++APP应用其它语言服务器应用
您现在的位置: 51代码网 >> sqlserver >> 文章正文

为什么最近MDF文件不更新了呢

更新时间:2012-8-15:  来源:51代码网

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

mdf显示的是前几天的日期,最近几天我对数据库都有添加信息的操作,但是连续几天数据库备份BAK,字节数都是一样的,我把最近一天的BAK还原,里面居然有最新的信息,重新启动SQL服务后,MDF显示最新日期,于是我又对数据库进行了操作,MDF和LDF的显示时间还停留在重新启动SQL服务后的时间。这跟OS有关,跟数据库无关。

对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手上,修改时间就会发生改变了。

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 赞助商链接
    推荐文章
  • 此栏目下没有推荐文章
  • {
    设为首页 | 加入收藏 | 友情链接 | 网站地图 | 联系站长 |