Tec*_*chy 4 sql-server azure azure-sql-database
我正在尽力删除行并重建索引,但数据库的大小正在快速增长,我无法看到我的操作的影响.
有没有原因,除了行删除和索引重建之外,有没有办法减少数据库的大小?
非常感谢你
请运行以下特殊存储过程,让我们知道哪个数据库文件变大了.
sp_helpfile
Run Code Online (Sandbox Code Playgroud)
如果日志文件变大,请运行以下语句以恢复空间日志.
DBCC SHRINKFILE (log, 0)
Run Code Online (Sandbox Code Playgroud)
如果数据文件(而不是日志文件)的大小增加,请使用以下查询来了解哪些表消耗的空间最多,并从那里开始调查.
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
Run Code Online (Sandbox Code Playgroud)
下面的查询还为您提供了每个索引的大小.
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
Run Code Online (Sandbox Code Playgroud)
看看这个微软帖子..
回收未使用的分配空间 DBCC 收缩 一旦确定要回收未使用的已分配空间的数据库,请在以下命令中修改数据库的名称以收缩每个数据库的数据文件。
SQL
-- 缩小分配的数据库数据空间。
DBCC SHRINKDATABASE (N'db1')
Run Code Online (Sandbox Code Playgroud)
SHRINKFILE 在 Azure SQL 上对我不起作用
| 归档时间: |
|
| 查看次数: |
3175 次 |
| 最近记录: |