繁体   English   中英

减少Azure SQL数据库大小

[英]Reduce Azure SQL Database Size

我正在尽力删除行并重建索引,但数据库的大小正在快速增长,我无法看到我的操作的影响。

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

非常感谢你

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

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

这篇博客文章引用了一些应对大型数据库的策略。

看看这个Microsoft Post ..

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

回收未使用的已分配空间DBCC shrink一旦确定了数据库用于回收未使用的已分配空间,请在以下命令中修改数据库的名称以收缩每个数据库的数据文件。

SQL

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

DBCC SHRINKDATABASE (N'db1')

SHRINKFILE在Azure SQL上不适用于我

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM