首页 > 解决方案 > 在没有 ETL 工具的情况下跨 SQL Server 实例增量移动数据

问题描述

我正在从事一个项目,该项目涉及定期将数据从结构相同的数据库 A(在 SQL Server 实例上)复制到数据库 B(在不同的实例上)。我没有使用 SSIS 或其他 ETL 工具的选项,因此我必须使用已经建立的链接服务器并编写一个存储过程作为增量负载的每小时作业运行。

要将增量记录从数据库 A 复制到 B,我将以下存储过程作为作业运行:

CREATE PROCEDURE Incremental_Load
AS
BEGIN
    SET NOCOUNT ON;

    INSERT INTO New_Table (New_Date_Column, Copied_Attribute)
        SELECT Datetime_Var, Attribute1
        FROM Linked_Server.Database_A.dbo.Source_Table
        WHERE Datetime_Var > (SELECT MAX(New_Date_Column) FROM New_Table);
END

它似乎有效;根据日期时间的最后一条记录,仅插入新表中不存在的新记录。我的问题与性能和潜在问题有关。如果源表每 30 分钟获取一次新记录,并且此存储过程每小时运行一次,我是否应该预料到任何问题,尤其是关于子查询的问题?另外,是否有可能我不会检测到所有增量?这种方法还有其他明显的问题吗?

万一这很重要,我无权访问 SQL Server Profiler。由于我的特权/角色,我也无法创造工作;其他人必须为我这样做。所以,我想在测试之前收集一些信息。

谢谢你。

标签: sql-server

解决方案


推荐阅读