[英]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 ..
回收未使用的已分配空間DBCC shrink一旦確定了數據庫用於回收未使用的已分配空間,請在以下命令中修改數據庫的名稱以收縮每個數據庫的數據文件。
SQL
- 收縮分配的數據庫數據空間。
DBCC SHRINKDATABASE (N'db1')
SHRINKFILE在Azure SQL上不適用於我
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.