我对 Azure SQL DB 有疑问。DB 的 Bacpack 导出只有 18MB,但服务器的收费 DB 大小已经超过 5GB。
有没有办法查看数据的实际大小?
有没有办法将数据库移动到简单的恢复模式?或者有没有其他方法可以缩小日志文件?
还是我应该删除数据库并从备份中恢复?
我对 Azure SQL DB 有疑问。DB 的 Bacpack 导出只有 18MB,但服务器的收费 DB 大小已经超过 5GB。
有没有办法查看数据的实际大小?
有没有办法将数据库移动到简单的恢复模式?或者有没有其他方法可以缩小日志文件?
还是我应该删除数据库并从备份中恢复?
问题是由碎片整理的索引引起的。
您可以从这里找到修复这些问题的好脚本:http: //blogs.msdn.com/b/dilkushp/archive/2013/07/28/fragmentation-in-sql-azure.aspx
运行脚本(和 24 小时)后,DB 的大小又回到了 300MB。
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