14

我对 Azure SQL DB 有疑问。DB 的 Bacpack 导出只有 18MB,但服务器的收费 DB 大小已经超过 5GB。

有没有办法查看数据的实际大小?

有没有办法将数据库移动到简单的恢复模式?或者有没有其他方法可以缩小日志文件?

还是我应该删除数据库并从备份中恢复?

4

2 回答 2

21

问题是由碎片整理的索引引起的。

您可以从这里找到修复这些问题的好脚本:http: //blogs.msdn.com/b/dilkushp/archive/2013/07/28/fragmentation-in-sql-azure.aspx

运行脚本(和 24 小时)后,DB 的大小又回到了 300MB。

于 2013-10-31T13:56:14.740 回答
3

bacpac 文件将比数据库小得多,因为它是数据的压缩版本,我相信它会删除诸如索引内容之类的内容,并且仅存储在还原时重新索引的索引定义,因此一个不应该指示另一个.

例如,我在 SQL Azure 上有一个数据库,配置为 10GB 高级数据库,目前使用 2.7GB,其中 BACPAC 大约为 300MB

你配置了什么样的数据库?当前显示的是什么版本、大小和使用设置。

** 编辑 ** 图片没有加载所以这里是外部链接 - http://i.snag.gy/JfsPk.jpg

接下来要检查的是按表/对象在数据库中的大小细分。使用 Management Studio 连接到您的 Azure 环境并运行以下查询。这将给出以 MB 为单位的数据库的表细分。

select    
      sys.objects.name, sum(reserved_page_count) * 8.0 / 1024
from    
      sys.dm_db_partition_stats, sys.objects
where    
      sys.dm_db_partition_stats.object_id = sys.objects.object_id

group by sys.objects.name
于 2013-10-30T14:27:57.060 回答