我有报告为我的数据库中的每个用户执行一些耗时的数据计算,结果是为每个用户计算 10 到 20 条新记录。为了提高报告响应能力,创建了一个夜间作业来运行计算并将结果转储到数据库中的快照表中。它只为活跃用户运行。
因此,对于 50k 用户,其中 30k 处于活动状态,该作业将大型快照表中的 300k 记录“更新”到 600k 条记录。它当前使用的方法是删除给定用户的所有先前记录,然后插入新集合。表上没有PK,只用一个业务key对数据集进行分组。
所以我的问题是,当每晚删除和添加多达 60 万条记录时,是否有技术来优化表来处理这个问题?例如,由于可以按需重新创建数据,有没有办法在进行这些更改时禁用表的日志记录?
更新:
一个问题是我不能批量执行此操作,因为脚本的工作方式是一次检查一个用户,因此它会查看一个用户,删除之前的 10-20 条记录,并插入一组新的 10-20 条记录。它一遍又一遍地这样做。我担心事务日志会用完空间或可能出现其他性能问题。我想将表配置为现在担心数据保存或其他可能减慢它的项目。我不能删除索引和所有这些,因为人们正在同时访问该表以对其进行更新。