SQL Server CDC:__ $ seqval如何在后台运行?

时间:2019-02-27 20:30:01

标签: sql-server cdc

对于<div class="panel panel-default" *ngFor="let i of [1,2,3,4]"> <div class="panel-heading"> <button class="btn btn-primary" type="button" #btn (click)="btn.toggle = !btn.toggle" >Question </button> </div> <div [ngClass]="{collapse:!btn.toggle}" > <div class="card card-body"> <p>{{i}}# something</p> </div> </div> </div> 值,我们进行以下假设:

    CDC表中的
  1. 唯一__$seqval值的数量等于 行数。
  2. 通过__$seqval从CDC表中选择一个选项会准确 重现内部交易和操作的顺序 交易在CDC表中显示。

这些假设是正确的吗?还是只能通过同时包含开始LSN seqval来订购CDC数据?

谢谢你!

1 个答案:

答案 0 :(得分:1)

对于#1,我不确定,但我不会做这个假设。我看到在表中重复的序列值,在相关事务中起始LSN稍有不同。我从未在同一张表中注意到重复项,但这并不意味着它不会发生。

关于总体期望,请结合使用全部四个sequence values来生成事务及其中的操作的确定性列表。我倾向于使用:

lapply(result_list, function(x) { x[["symbol"]] <- dds$symbol[ match(rownames(x), rownames(dds)) ] }) Error in x[["symbol"]] <- dds$symbol[ match(rownames(x), rownames(dds)) ] : replacement has length zero lapply(result_list, function(x) { x[["symbol"]] <- dds[["symbol"]][ match(rownames(x), rownames(dds)) ] }) Error in x[["symbol"]] <- dds[["symbol"]][ match(rownames(x), rownames(dds)) ] : replacement has length zero

要获得更正式的命令,这是我的服务器上每个CDC表的聚集索引定义,该索引定义是在为该表启用CDC时生成的:

ORDER BY __$start_lsn ASC, __$seqval ASC, __$command_id ASC, __$operation ASC

包含源表主键的非聚集索引是相同的方式。

使用CREATE UNIQUE CLUSTERED INDEX ... ( [__$start_lsn] ASC, [__$command_id] ASC, [__$seqval] ASC, [__$operation] ASC ) 的注意事项:

    SQL Server的
  • Some versions不能正确订购它们。 Fully patched系统应该没有问题。
  • 在官方文档generatedsays you should use函数的输出中没有此列。这些函数为您做一些事情,最重要的是查询__$command_id以避免数据库争用,但是我自己的大多数代码都直接查询那些_CT表。