我在我的数据库上设置了CDC,可以看到插入_CT和lsn_time_mapping
表的记录。但是,当我使用以下查询在更改后立即获取更改数据时,我看不到任何结果:
SELECT ct.Id,
sys.fn_cdc_map_lsn_to_time(__$start_lsn) TransactionDateTime
FROM cdc.dbo_myTable_CT ct
WHERE Id = 40
AND __$start_lsn >= sys.fn_cdc_map_time_to_lsn('smallest greater than', '3/1/2015')
AND __$start_lsn < sys.fn_cdc_map_time_to_lsn('largest less than', '5/1/2015')
Group By __$start_lsn, ct.Id
5分钟后,相同的查询将返回我的更改数据。
我也注意到像这样的行每5分钟插入lsn_time_mapping
:
start_lsn tran_begin_time tran_end_time tran_id tran_begin_lsn
0x0000048E0000004A0001 2015-04-06 11:32:19.840 2015-04-06 11:32:19.840 0x00 0x00000000000000000000
看来,在更改后插入此类记录时,我不会从上述查询中获得更改。
有谁能解释这里发生了什么?