除了截断AttachmentHistory和VersionHistory表之外,还有更好的方法来减少Kentico数据库大小吗?

时间:2014-07-11 20:09:50

标签: kentico

我需要显着减小Kentico 7数据库的大小。使用下面的查询(source)查看表格,我可以看到数据大小方面的一些最大的表格是CMS_AttachmentHistoryCMS_VersionHistory

CREATE TABLE #tmpTableSizes
(
    tableName varchar(100),
    numberofRows varchar(100),
    reservedSize varchar(50),
    dataSize varchar(50),
    indexSize varchar(50),
    unusedSize varchar(50)
)
insert #tmpTableSizes
EXEC sp_MSforeachtable @command1="EXEC sp_spaceused '?'"

select  * from #tmpTableSizes
order by cast(LEFT(reservedSize, LEN(reservedSize) - 4) as int)  desc

我从2013年发现forum post表示只需将AttachmentBinary列设置为null表中的CMS_AttachmentHistory即可。

我不知道CMS_VersionHistory表格中存在类似的可能性。

由于FK约束,简单地截断表格不起作用,所以我对沿着这条路线走得更远犹豫不决。

除了SQL TRUNCATE语句之外,还有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

查看存储文件的位置。如果将数据存储在磁盘上而不是数据库中,则可以大量减少数据库的大小。 CMS SiteManager下有一个设置>设置>系统>文件:存储。检查文件系统中的存储文件。取消选中将文件存储在数据库中。

在开发网站之初,最好这样做。如果站点已经存储了数据库中的所有内容,则可以将文件移动到磁盘http://devnet.kentico.com/articles/moving-file-storage-from-database-to-file-system

答案 1 :(得分:0)

此表没有任何类似的方式,因为它与文档相关,并且没有存储任何二进制数据。

您可以按照开发指南中的说明更改设置中的长度历史记录: Configuring object versioning

最好的问候,马丁