首页 > 解决方案 > 关于Kentico10快速批量删除用户

问题描述

我想删除 Kentico10 中超过 100 万条用户信息。

我试图用 UserInfoProvider.DeleteUser (); 删除它 (见后面的文档),但是简单计算一下估计要将近一年的时间。 https://docs.kentico.com/api10/configuration/users#Users-Deletingauser

因为是简单的计算,我觉得其实短了一点,但是还是需要时间的。有没有其他方法可以在短时间内删除用户?

标签: kentico

解决方案


当然,请确保在执行任何此操作之前备份数据库。

根据您使用的功能,您可以使用 SQL 语句。由于用户引用多个其他表的复杂性,SQL 语句可能会变得非常复杂,您需要确保在删除实际用户记录之前删除其他引用。

我强烈推荐一种 API 方法并通过 API 删除用户,这样它就会自动为您删除所有引用。在您的 API 调用中,请确保将删除操作包装在以下内容中,以便停止记录事件和其他不需要的劳动密集型活动。

using (var context = new CMSActionContext())
{
    context.DisableAll();
    // delete your user
}

在您的代码中,我一次只选择前 100 个左右并批量删除它们。假设您不需要一次完成所有这些,您可以让计划任务运行您的自定义代码一周并查看您的位置。

如果一切都失败了,弄清楚如何删除用户和 70 多个外键引用,你会很成功。


推荐阅读