逻辑删除表与数据库同步和软删除方案中的已删除标志

我需要跟踪已删除的项目以满足客户端同步需求.

通常,最好是添加一个逻辑删除表和一个触发器来跟踪从服务器数据库删除行的时间 – 基本上是使用已删除项目中的数据向逻辑删除添加新行 – 或者将项目保留在原始表并将它们标记为已删除,通常使用类型为bit的列,以指示删除行以及在删除发生时跟踪的另一列?

解决方法

一般而言,最好了解具体要求,而不是根据大多数情况下最佳效果做出设计决策.两者都可能更可取.以下是一些要收集的细节:

>删除需要多快?>未删除需要多快?>查询删除数据的频率是多少,是否会使用尚未删除的数据进行查询?>删除数据的查询需要多快?>您是否还需要仅保留已删除的项目或更改?>您是否需要保持主表上的表/索引较小?>数据库平台上有哪些分区和/或更改跟踪技术?>有多少磁盘空间?>删除是在运行中还是在批处理操作中进行?

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...