问题标签 [change-tracking]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 实现字段更改跟踪的模式
对于我最近的一个项目,我必须实施现场更改跟踪。因此,每当用户更改字段的值时,都会记录更改以允许对更改进行全面审核。
在数据库中,我将其实现为FieldChanges
具有以下字段的单个表:
- 表名
- 字段名
- 记录 ID
- 更改日期
- 更改者
- 整数值
- 文本值
- 日期时间值
- 布尔值
sproc 保存对对象的更改,确定每个字段是否已更改,如果已更改,则在 FieldChanges 中插入一条记录:如果更改的字段的类型为int
,则将其记录在表中的IntValue
字段中FieldChanges
,等等。
这意味着对于任何表中具有任何 id 值的任何字段,我都可以查询 FieldChanges 表以获取更改列表。
这工作得很好,但有点笨拙。其他实现了类似功能的人能否提出更好的方法,为什么他们认为它更好?
我真的很感兴趣-谢谢。
大卫
sql-server-2008 - 变更数据捕获或变更跟踪 - 与传统审计跟踪表相同?
在我更深入地研究 Microsoft 文档的深渊之前,我想知道是否有人对更改数据捕获和更改跟踪有经验,是否知道其中一个或两个是否可以用来代替传统的...
“由触发器插入的‘真实表’(原始表的所有字段,加上日期/时间、用户 ID 和 DML 操作字段)的审计跟踪表副本”
...设置数据库表审计跟踪,其中触发器填充审计跟踪表(这都是手动工作)。
MSDN 概述文档从高层次上解释了变更数据捕获和变更跟踪是什么,但对我来说还不够清楚,也没有直接说明这些工具可以用来替换我们的传统审计跟踪表。我经常做。
有任何使用变更数据捕获和变更跟踪经验的人可以为我节省大量时间,或者确认我正在花时间寻找正确的工具吗?我们审计跟踪的关键部分是捕获对表字段(在 INSERT、UPDATE、DELETE 上)的所有更改、发生时间以及执行者。这些更改通常通过审计跟踪报告按时间顺序提供给最终用户。另一个问题是......更改数据捕获或更改跟踪是解决方案,我假设可以像普通表中的数据一样查询这些数据?
编辑:无论时间长短,我都需要一个永久的审计跟踪。我看到变更数据捕获与事务日志有关,所以这对我来说听起来很有限。
sql-server - SQL Server 2008 更改跟踪中的保留期
我有点担心 SQL Server 2008 更改跟踪中的默认保留期(即 2 天)。
将此期间设置为例如是一个好主意吗?100 年并关闭自动清理功能,或者它会在未来因过多的存储使用和/或性能下降而咬我?有人有这方面的经验吗?
sql-server - 在 Sql Server 2005 上插入全文索引表时性能下降
我正在尝试将大量记录插入全文索引的表中。我已将更改跟踪设置为auto
.
这些记录是从另一个表中插入的,每次插入的数量通常约为 50,000。在 SQL Server 2008 上,这需要大约 5 秒才能完成。但是在我们的 live 2005 环境中运行这需要 10 分钟以上。
查看执行计划,似乎是插入到全文跟踪表的聚集索引中,这就是问题所在。主键列是用uniqueidentifier
分配的newsequentialid()
。但是,虽然 2008 年执行了 1 个聚集索引合并,fulltext_index_docidstatus
但 2005 年执行了 50,000 次聚集索引插入fulltext_index_map
。
不幸的是,升级服务器现在不是一个选项。关闭更改跟踪可以解决问题,但我真的不想这样做,因为自己管理人口不会很好。更改跟踪似乎是让新记录出现在全文索引中的最快方法,这是一个优先事项。
有没有办法在保持更改跟踪启用的同时解决这个问题?
.net - 从数据库中不断更新应用程序中的数据
我正在编写一个需要从数据库中的视图不断更新其显示数据的应用程序。目前,它定期轮询整个数据集并重新显示它。我正在改变它以提高效率,并且对人们对如何最有效地做到这一点的意见感兴趣。
该应用程序是一个 Windows 窗体应用程序并使用 DataGridView 来显示数据。数据库服务器是 SQL Server 2008。
我一直在阅读有关 SQL Server 更改跟踪功能的信息,想知道这是否相关?任何人都可以在这里提出任何好的方法吗?我需要它在应用程序中插入、更新和删除行,而不影响当前选定行的状态或滚动条的位置。
谢谢!
.net - 检查 ASP.net 表单中的更改
我想检查我的 ASP.NET 网页上的表单是否有任何更改,我有哪些选择?
我应该检查视图状态是否已更改,还是应该在代码隐藏中创建一个标志,由 Web 控件事件触发,例如 TextChanged for Textboxes 或 SelectedIndexChanged for Dropdownlists?
.net - 在 SQL Server 2008 数据库中维护数据历史记录的方法
长期以来,我们一直希望创建一个不会丢失历史记录的案例管理系统。进行更改时,我们希望记录该更改,但能够返回到任何时间点并查看记录的样子。我想向 Stack Overflow 社区提出这个问题,看看有哪些方法可以做到这一点,是否已经有技术可以实现这一目标?
nhibernate - 如何确定 NHibernate 实体是否已更新
我有一个基于外部数据批量更新实体负载的应用程序。其中一些不会改变。NHibernate 足够聪明,可以知道实体是否已更改以及在我调用时是否发送更新DbContext.CommitChanges()
。
但是我希望能够在更新实体时输出到屏幕/日志。
如何确定是否已执行更新?我如何挂钩到 Nhibernate 更改跟踪?
python - 适合跟踪大量更改的数据库
我正在尝试实现一个 python 脚本,该脚本写入和读取数据库以跟踪 3d 游戏 (Minecraft) 中的更改这些更改由各种客户端完成,可以由玩家姓名、坐标 (x、y、z) 和说明。我正在存储大量更改,并且想知道存储和检索这些更改的简单且最好快速的方法。什么样的数据库适合这份工作?
merge - 合并复制 - 更改跟踪级别
我遇到了以下问题 - 我只复制表 A 中的选定列。在更新此表中的记录的发布者处执行了不同的更新。执行的许多更新仅影响表 A 中未复制的列。但是,在这种情况下,复制引擎决定这些行也必须同步,因为行中发生了更改。就我而言,这是不必要的,它对系统的性能产生了巨大的影响。有没有办法从跟踪更改机制中排除那些未在表 A 中复制的列?
提前感谢所有答案。彼得。