【问题标题】:Index Size not reachable无法达到索引大小
【发布时间】:2015-03-03 02:24:52
【问题描述】:

我在表列上创建了一个非聚集索引,它包含 5GB 的索引数据,但我无法在我的磁盘上看到这个 +5GB 的数据大小变化。

有什么建议吗?

谢谢

【问题讨论】:

  • 为什么会在磁盘上看到它?索引在数据库中。
  • 如果您的数据文件有 5+ GB 的可用空间,则它们不需要增长并且文件大小将保持不变。
  • @Dave.Gugg,假设我的 mdf 和 ldf 在 F 盘上,现在我的磁盘上有 15gb 的可用空间。在我创建了 5GB 的索引后,大小不会改变?
  • 不一定。 SQL 占用的磁盘空间比它需要的多,并且在它需要它之前不会占用更多的空间,然后它又会占用比它需要的更多的空间。否则,每次它需要更多的空间时,它都会增长。它喜欢不那么频繁地大块地生长。
  • @TabAlleman 谢谢我明白了!也检查下面的答案

标签: sql sql-server database indexing non-clustered-index


【解决方案1】:

您可以通过此查询查看 SQL mdf 或 ndf 文件中使用了多少空间:

SELECT  df.name ,
        df.size / 128 AS FileSize ,
        df.size / 128 - fsu.unallocated_extent_page_count / 128 AS UsedSpace
FROM    DatabaseName.sys.dm_db_file_space_usage fsu
        INNER JOIN DatabaseName.sys.database_files df ON fsu.file_id = df.file_id

如果文件之前有足够的可用空间,那么在您创建索引时它就不必增长。

【讨论】:

    猜你喜欢
    • 2017-09-08
    • 2017-05-16
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多