同一个数据库,我查询sys.database_files,数据库文件大小是2925920;我右键数据库属性,数据库文件大小是134792.75 MB;我查看硬盘上查看数据库的.mdf文件的大小是23969136640到底是那个大小是正确的。数据库大小查询

解决方案 »

  1.   

    从sys.database_files这里查询出来的是数据需要的空间,也就是预保留的空间,因为有些内空为null,因此它并没有占用实际的空间,硬盘上的文件大小才是数据库实际占用的空间。这两个值都正确,它们是相对的
      

  2.   

    右键数据库属性显示的数据库文件是MB为单位的,而mdf文件是KB为单位的。你将mdf文件的大小数值除以1024试试,应该就是键数据库属性显示的数据库文件大小。
      

  3.   

    硬盘上的文件大小才是数据库实际占用的空间,会与sys.database_files里面的有差异
      

  4.   

    mdf文件是byte为单位,我除了两下1024,还是跟其他几个一点关系都木有
      

  5.   

    sys.database_files的size列: 文件的当前大小(以8KB页为单位).
    参考 http://technet.microsoft.com/zh-cn/library/ms174397(v=sql.105).aspx也就是说, sys.database_files的size列值 * 8 = 数据文件(.mdf)的大小
    注: 均以kb为单位.数据库属性中的数据库大小,其值等于数据文件大小+日志文件大小,并非只含数据文件的大小.
      

  6.   

    确实,sys.datafiles的size是以8kb为单位的,也就是:size的值*8Kb*1024=硬盘上数据文件大小,右键属性的大小确实是硬盘上的.mdf和.ldf文件之和。