CDC 变更数据捕获技术的问题及局限

现在的cdc功能仍然还是会让你失望的。 
优点就不说了,就是联机丛书里面写的那些。
缺点如下:
1、目前为止cdc无法与日志文件关联,更多有用的信息,仍需要进行前后数据比对获取。(一般仍会使用触发器进行替代记录)
2、目前为止cdc可以记录DDl的相关处理,但是更多的信息,如记录IP等用户信息仍然需要另外的代码支持。

select * into PT_CUSTOMER_INFO_BAK from PT_CUSTOMER_INFO

类似oracle的create table as select * from t;

约束也不会带过来。

alt + q
看sql server的执行计划。

聚集索引表:和oracle的iot表,索引表是一样的概念,表和索引是在一起的,即:表就是排序的。

非聚集索引表:就是堆表

执行计划:

1. 【Table Scan】:遍历整个表,查找所匹配的记录行。这个操作将会一行一行的检查,当然,效率也是最差的。

2. 【Index Scan】:根据索引,从表中过滤出来一部分记录,再查找所匹配的记录行,显示比第一种方式的查找范围要小,因此比【Table Scan】要快。

3. 【Index Seek】:根据索引,定位(获取)记录的存放位置,然后取得记录,因此,比起前二种方式会更快。

4. 【Clustered Index Scan】:和【Table Scan】一样。注意:不要以为这里有个Index,就认为不一样了。

其实它的意思是说:按聚集索引来逐行扫描每一行记录,因为记录就是按聚集索引来顺序存放的。
    
    而【Table Scan】只是说:要扫描的表没有聚集索引而已,因此这二个操作本质上也是一样的。

5. 【Clustered Index Seek】:直接根据聚集索引获取记录,最快!

还有一个小问题,删除索引 和 删除主键的方式不同,因为主键属于约束,不是索引。

删除索引:drop index IDX_PROVINCE_ID on PT_CUSTOMER_INFO_BAK

删除主键:alter table PT_CUSTOMER_INFO_BAK drop constraint PK_PT_CUSTOMER_INFO_BAK

添加主键:

ALTER TABLE PT_CUSTOMER_INFO_BAK
ADD CONSTRAINT PK_PT_CUSTOMER_INFO_BAK PRIMARY KEY nonclustered(ID);
go

时间: 2024-10-12 17:10:59

CDC 变更数据捕获技术的问题及局限的相关文章

CDC变更数据捕获

CDC变更数据捕获 (2013-03-20 15:25:52)   分类: SQL SQL Server中记录数据变更的四个方法:触发器.Output子句.变更数据捕获(Change Data Capture )功能.同步更改跟踪. 这里记录下cdc: 变更数据捕获可记录应用于 SQL Server 表的插入.更新和删除活动. 对数据库中的某张表启用变更数据捕获,例子: CREATE DATABASE test1 USE test1 CREATE TABLE [dbo].[WSTtestTBL]

SqlServer 变更数据捕获(CDC)

变更数据捕获(Change Data Capture ,简称 CDC)记录 SQL Server 表的插入.更新和删除活动.使用变更数据捕获可以更有效跟踪表对象DML历史操作,对 ETL 等数据转移也非常有用. 变更数据捕获适用版本: SQL Server 2008 以上的 Enterprise Edition.Developer Edition 和 Evaluation Edition 变更数据捕获原理: 变更数据捕获的更改数据源为 SQL Server 事务日志.当对表启用变更数据捕获时,系

SQL Server 变更数据捕获(CDC)

原文:SQL Server 变更数据捕获(CDC) 标签:SQL SERVER/MSSQL SERVER/数据库/DBA/字段/对象更改 概述 变更数据捕获用于捕获应用到 SQL Server 表中的插入.更新和删除活动,并以易于使用的关系格式提供这些变更的详细信息.变更数据捕获所使用的更改表中包含镜像所跟踪源表列结构的列,同时还包含了解所发生的变更所需的元数据. 对表开启了变更捕获之后,对该表的所有DML和DDL操作都会被记录,有助于跟踪表的变化. 测试环境: SQL SERVER 2008

SQL Server 2008新增的变更数据捕获和更改跟踪

本文主要介绍SQL Server中记录数据变更的四个方法:触发器.Output子句.SQL Server 2008中新增的变更数据捕获(Change Data Capture 即CDC)功能.同步更改跟踪.其中后两个为SQL Server 2008所新增. 一.触发器 在SQL Server的早期版本中,如果要记录某个表或视图的Insert/Update/Delete操作,我们可以借助触发器(Trigger)(http://msdn.microsoft.com/zh-cn/library/ms1

在SSIS 2012中使用CDC(数据变更捕获)

最新项目稍有空隙,开始研究SQL Server 2012和2014的一些BI特性,参照(Matt)的一个示例,我们开始体验SSIS中的CDC(Change Data Capture,变更数据捕获). 注:如果需要了解关于SQL Server 2008中的CDC,请看这里http://www.cnblogs.com/downmoon/archive/2012/04/10/2439462.html),本文假定读者对CDC的工作方式已有所了解.^_^. 我们分三步完成实例: 1.准备基础数据: 2.设

SQL Server 之 - 变更数据跟踪 1

某些应用程序(比如数据仓库系统)十分依赖于源系统的变更数据识别功能,它们期望源系统能够提供一种高效低识别变更数据的能力.在SQLServer 2008之前并没有原生态的解决方案,开发人员不得不通过使用触发器.时间戳以及额外的表来实现该功能,在SQL Server2008之后,数据库提供了两种原生态的特性:Change Tracking(变更追踪)及Change Data Capture(变更数据捕获). 功能对比 简单来讲,所谓变更可以简化为两个问题:①变更有没有发生以及变更的类型:②数据从什么

CDC-更改数据捕获存储过程 (Transact-SQL)-学习

背景: 在SQLServer2008之前,对数据变更的捕获通常使用触发器.时间戳等低效高成本的功能来实现,所以很多系统都没有做数据变更或者仅仅对核心表做监控. 适用环境: 仅在SQLServer2008(含)以后的企业版.开发版和评估版中可用. 官方介绍: 更改数据捕获存储过程 (Transact-SQL) 变更数据捕获使得在启用表上发生的数据操纵语言 (DML) 活动的历史记录能够以方便的关系格式提供.使用以下存储过程可以配置变更数据捕获.管理变更数据捕获代理作业和为更改数据使用者提供当前元数

Python黑帽编程 4.1 Sniffer(嗅探器)之数据捕获(上)

Python黑帽编程 4.1 Sniffer(嗅探器)之数据捕获(上) 网络嗅探,是监听流经本机网卡数据包的一种技术,嗅探器就是利用这种技术进行数据捕获和分析的软件. 编写嗅探器,捕获数据是前置功能,数据分析要建立在捕获的基础上.本节就数据捕获的基本原理和编程实现做详细的阐述. 4.1.1 以太网网卡的工作模式 以太网网卡是我们日常生活中见得最多的网卡,我们的电脑通过网线或者wifi接入网络,使用的都是以太网网卡. 图2 常用的以太网卡支持以下工作模式:广播模式.多播模式.直接模式和混杂模式.

ADO.NET数据访问技术

就是将C#和MSSQLl连接起来的纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中,也可以将数据库中的数据提取到内存中供程序调用.是所有数据访问技术的基础. ADO.NET使用一些ADO对象,如Connection和Command对象,也引入了一些新对象.关键的新对象包括DataSet,DataReader,和DataAdapter. Connections. 用于连接和管理针对数据库的事务. Commands. 用于发出针对数据库的SQL指令. DataReaders. 用于从SQ