关于Kentico10中用户的快速批量删除

关于Kentico10中用户的快速批量删除,kentico,Kentico,我想删除Kentico10中超过100万的用户信息 我尝试使用UserInfoProvider.DeleteUser删除它;请参阅以下文档,但通过简单的计算,预计需要将近一年的时间。 因为这是一个简单的计算,我认为它实际上有点短,但它仍然需要时间。 有没有其他方法可以在短时间内删除用户?为什么不使用SQL query删除用户?-我相信它会快得多。当然,在执行任何操作之前,请确保您有一个数据库备份 根据您使用的功能,您可以使用SQL语句。由于用户对多个其他表的引用的复杂性,SQL语句可能会变得非

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

我尝试使用UserInfoProvider.DeleteUser删除它;请参阅以下文档,但通过简单的计算,预计需要将近一年的时间。

因为这是一个简单的计算,我认为它实际上有点短,但它仍然需要时间。
有没有其他方法可以在短时间内删除用户?

为什么不使用SQL query删除用户?-我相信它会快得多。

当然,在执行任何操作之前,请确保您有一个数据库备份

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

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

using (var context = new CMSActionContext())
{
    context.DisableAll();
    // delete your user
}
在你的代码中,我一次只选择前100名左右的人,然后批量删除他们。假设您不需要在一次运行中完成这一切,您可以让计划的任务运行您的自定义代码一周,然后查看您的情况


如果所有这些都失败了,找出如何删除用户和70多个外键引用,您将获得金牌

从开始存在批量删除功能


有一个删除方法。实际上,从AbstractInfoProvider中提取的任何InfoProvider对象都有方法。

批量删除功能不会抑制我所知道的任何日志记录。我从未尝试过;我会用小批量测试它,确保它正常工作,然后禁用所有日志记录。SQL查询不会删除任何子记录或外键记录。