SQL Server 2008的CDC功能
发布时间:2016-09-06 21:20:55 所属栏目:MsSql教程 来源:站长网
导读:CDC(Change Data Capture)通过对事务日志的异步读取,记录DML操作的发生时间、类型和实际影响的 数据变化,然后将这些数据记录到启用CDC时自动创建的表中。通过
CDC(Change Data Capture)通过对事务日志的异步读取,记录DML操作的发生时间、类型和实际影响的 数据变化,然后将这些数据记录到启用CDC时自动创建的表中。通过cdc相关的存储过程,可以获取详细的 数据变化情况。由于数据变化是异步读取的,因此对整体性能的影响不大,远小于通过Trigger实现的数 据变化记录。
下面我用一个实例讲解这个功能。该功能主要在ETL解决方案中比较有用。 USE AdventureWorksDW; GO EXECUTE sys.sp_cdc_enable_db; --启用数据库对CDC的支持 GO EXEC sys.sp_cdc_enable_table 'dbo', 'FactInternetSales', @role_name = NULL, @supports_net_changes =0; --启用某个表对CDC的 支持 GO --这里的supports_net_changes指的是是否支持所谓的净更改,即过滤掉重复的 SELECT name, is_tracked_by_cdc FROM sys.tables WHERE name LIKE ('fact%'); INSERT INTO FactInternetSales VALUES (484,1127,1139,1134,18759,1,100,6,'SO75124',1,1,1,21.9800,21.9800,0,0,8.2205,8.2205,21.9800, 1.7584,0.5495,NULL,NULL); INSERT INTO FactInternetSales VALUES (486,1127,1139,1134,18759,1,100,6,'SO75125',1,1,1,21.9800,21.9800,0,0,8.2205,8.2205,21.9800, 1.7584,0.5495,NULL,NULL); UPDATE FactInternetSales SET PromotionKey = 2 WHERE SalesOrderNumber = 'SO75124'; DELETE FROM FactInternetSales WHERE SalesOrderNumber='SO75125' SELECT * FROM cdc.dbo_FactInternetSales_CT; --这个表其实是在系统表里面 (编辑:徐州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |