在没有ETL工具的情况下,跨SQL Server实例递增地移动数据

时间:2018-11-19 18:17:45

标签: 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

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

如果有关系,我无权访问SQL Server Profiler。由于我的特权/角色,我也无法创建工作;别人必须为我做。因此,我想在测试之前收集一些信息。

谢谢。

0 个答案:

没有答案