簡體   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