kentico - 关于Kentico10快速批量删除用户
问题描述
我想删除 Kentico10 中超过 100 万条用户信息。
我试图用 UserInfoProvider.DeleteUser (); 删除它 (见后面的文档),但是简单计算一下估计要将近一年的时间。 https://docs.kentico.com/api10/configuration/users#Users-Deletingauser
因为是简单的计算,我觉得其实短了一点,但是还是需要时间的。有没有其他方法可以在短时间内删除用户?
解决方案
当然,请确保在执行任何此操作之前备份数据库。
根据您使用的功能,您可以使用 SQL 语句。由于用户引用多个其他表的复杂性,SQL 语句可能会变得非常复杂,您需要确保在删除实际用户记录之前删除其他引用。
我强烈推荐一种 API 方法并通过 API 删除用户,这样它就会自动为您删除所有引用。在您的 API 调用中,请确保将删除操作包装在以下内容中,以便停止记录事件和其他不需要的劳动密集型活动。
using (var context = new CMSActionContext())
{
context.DisableAll();
// delete your user
}
在您的代码中,我一次只选择前 100 个左右并批量删除它们。假设您不需要一次完成所有这些,您可以让计划任务运行您的自定义代码一周并查看您的位置。
如果一切都失败了,弄清楚如何删除用户和 70 多个外键引用,你会很成功。
推荐阅读
- ios - Xcode 10 - 使用 Swift 4.1.2 编译的模块不能被 Swift 4.2 编译器导入
- go - Go 客户端和“etcdctl”cli 实用工具似乎在不同的工作区上工作,即使它们连接到相同的主机
- reactjs - 当使用带有“no-any”的 Typescript 时,允许 props.children 是任何东西:真的吗?
- mysql - 如何删除表的所有外键
- xquery - 如何在 XQuery 中插入构造的 XML 节点?
- java - Java 8 基于一个属性比较 2 个列表
- visual-studio - WiX安装后我的exe文件双击不起作用,只能以管理员身份运行
- android - 无法从改造中获取数据
- javascript - 引导 vue 进度的单独颜色
- c++ - 如何禁用 QTreeView 中的默认复制行为?