【问题标题】:Reduce Azure SQL Database Size减少 Azure SQL 数据库大小
【发布时间】:2018-01-31 10:19:10
【问题描述】:

我正在尽最大努力删除行和重建索引,但是数据库的大小增长得非常快,我看不到我的操作的效果。

这是有原因的吗?除了行删除和索引重建之外,有没有办法减小数据库的大小?

非常感谢

【问题讨论】:

    标签: sql-server azure azure-sql-database


    【解决方案1】:

    查看此 Microsoft 帖子..

    https://docs.microsoft.com/en-us/azure/sql-database/sql-database-file-space-management#reclaim-unused-allocated-space

    回收未使用的分配空间 DBCC 收缩 一旦识别出数据库以回收未使用的分配空间,请在以下命令中修改数据库的名称以收缩每个数据库的数据文件。

    SQL

    -- 收缩分配的数据库数据空间。

    DBCC SHRINKDATABASE (N'db1')
    

    SHRINKFILE 在 Azure SQL 上不适合我

    【讨论】:

      【解决方案2】:

      请运行以下特殊存储过程,让我们知道哪个数据库文件变大了。

      sp_helpfile
      

      如果日志文件越来越大,请运行以下语句来恢复空间日志。

      DBCC SHRINKFILE (log, 0)
      

      如果数据文件而不是日志文件的大小正在增加,请使用以下查询来了解哪些表占用的空间最多,并从那里开始调查。

      select 
          o.name, 
          max(s.row_count) AS 'Rows',
          sum(s.reserved_page_count) * 8.0 / (1024 * 1024) as 'GB',
          (8 * 1024 * sum(s.reserved_page_count)) / (max(s.row_count)) as 'Bytes/Row'
      from sys.dm_db_partition_stats s, sys.objects o
      where o.object_id = s.object_id
      group by o.name
      having max(s.row_count) > 0
      order by GB desc
      

      以下查询还为您提供每个索引的大小。

      select  
          o.Name,
          i.Name,
          max(s.row_count) AS 'Rows',
          sum(s.reserved_page_count) * 8.0 / (1024 * 1024) as 'GB',
          (8 * 1024* sum(s.reserved_page_count)) / max(s.row_count) as 'Bytes/Row'
      from 
          sys.dm_db_partition_stats s, 
          sys.indexes i, 
          sys.objects o
      where 
          s.object_id = i.object_id
          and s.index_id = i.index_id
          and s.index_id >0
          and i.object_id = o.object_id
      group by i.Name, o.Name
      having SUM(s.row_count) > 0
      order by GB desc
      

      【讨论】:

      • 非常感谢,数据库日志只有1GB,而数据库mdf大于800GB
      • 我添加了一个查询,告诉您消耗更多空间的顶级表。然后,您可以从那里调查为什么这些表会占用如此多的空间。
      【解决方案3】:

      这个blog post 引用了一些应对大型数据库的策略。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-07
        • 2016-11-11
        相关资源
        最近更新 更多