浅析SQL 2008的Change Data Capture功能
SSIS(SQL Server集成服务)是一个嵌入式应用程序,用于开发和执行ETL(解压缩、转换和加载)包。SSIS代替了SQL 2000的DTS。整合服务功能既包含了实现简单的导入导出包所必需的Wizard导向插件、工具以及任务,也有非常复杂的数据清理功能。SQL Server 2008 SSIS的功能有很大的改进和增强,比如它的执行程序能够更好地并行执行。在SSIS 2005,数据管道不能跨越两个处理器。而SSIS 2008能够在多处理器机器上跨越两个处理器 。而且它在处理大件包上面的性能得到了提高。SSIS引擎更加稳定,锁死率更低。 Lookup功能也得到了改进。Lookup是SSIS一个常用的获取相关信息的功能。比如从CustomerID查找Customer Name,获取数据集。Lookup在SSIS中很常见,而且可以处理上百万行的数据集,因此性能可能很差。SQL 2008对Lookup的性能作出很大的改进,而且能够处理不同的数据源,包括 ADO.NET,XML,OLEDB和其他SSIS压缩包。
SQL 2008可以执行TSQL的MERGE命令。用MERGE命令,只需一个语句就可以对行进行 update、insert或 delete。下面的例子就是如何用MERGE命令来把新的Inventory Item descriptions 列表插入已有的Inventory Master中。除了 descriptions, NewInventory表格中还加入了其他一些部分。如果没有MERGE语句,就需要执行两个命令才能完成。第一个命令查找匹配的Description然后更新。第二个命令查找不匹配项然后插入。有了MERGE,一个语句就可以完成这两个任务。步骤如下:
以下为引用的内容:
MERGEInventoryMasterASim
USING(selectInventoryID,DescrFROMNewInventory)ASsrc
ONim.InventoryID=src.InventoryID
WHENMATCHEDTHEN
updateSETim.Descr=src.Descr
WHENNOTMATCHEDTHEN
insert(InventoryID,Descr)VALUES(src.InventoryID,src.Descr);