SiteAzure4.2升级到Webfuture11.0的数据库静态表清空处理操作
问题说明:
在SiteAzure4.2升级到Webfuture11.0的过程中,我们发数据库中的3个静态生成表数据库量非常大,导致升级过程变得非常慢,但是在webfuture产品中这一块已经做了优化变更,静态类数据也用不上,因此在做升级之前可以以下3个表数据清空处理,大大加快升级进度。
问题处理:
#TRUNCATE TABLE dbo.TableA;
PE_StaticHtmlManage_StaticHtmlGenerationTaskDetailLog 这个日志表可以直接用TRUNCATE TABLE来清空处理
另外俩个表处理起来就比较麻烦一点,TRUNCATE TABLE清理不了。因为有主外键关系。
如果是使用#DELETE FROM dbo.TableA;来删除表数据也会非常慢,不推荐。
#还有就是先删除外键再用TRUNCATE TABLE来删除表数据
1,通过以下生成drop外键脚本
SELECT
'ALTER TABLE ' + QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id)) + '.'
+ QUOTENAME(OBJECT_NAME(parent_object_id)) +
' DROP CONSTRAINT ' + QUOTENAME(name) + ';'
FROM sys.foreign_keys
WHERE referenced_object_id = OBJECT_ID('dbo.PE_StaticHtmlManage_StaticHtmlGenerationTask');
2,然后通过生成的脚本来执行删除外键。
-- 执行上一步生成的 DROP 语句
3,通过TRUNCATE TABLE来清空对应的表数据
TRUNCATE TABLE dbo.PE_StaticHtmlManage_StaticHtmlGenerationTask;
#另外一个表也是同样操作即可
以上仅用于sa4.2升级wf11.0过程中,主外键会彻底失去。操作之前务必备份数据库。