Sql server 在SQL Server中合并与删除表并重建索引

Sql server 在SQL Server中合并与删除表并重建索引,sql-server,tsql,stored-procedures,log-shipping,Sql Server,Tsql,Stored Procedures,Log Shipping,我有一个第三方数据库的“日志传送”副本。日志传送每15分钟运行一次,此时所有与数据库的连接都将断开。该数据库用于报告目的 我决定将日志(只读)数据库中的一些数据拉入每晚刷新的新数据库。这将允许用户连接到新数据库,而不会因日志传送而失去连接。(它还允许使用更精细的安全权限,因为只读副本无法编辑) 我可以想出两种模式来实现这一点 删除表、创建表、创建索引 使用MERGE语句插入/更新/删除记录 我已经使用上面的方法1实现了这个解决方案,而且效果很好 每天丢弃所有数据对我来说有点沉重。上述方法1是否有

我有一个第三方数据库的“日志传送”副本。日志传送每15分钟运行一次,此时所有与数据库的连接都将断开。该数据库用于报告目的

我决定将日志(只读)数据库中的一些数据拉入每晚刷新的新数据库。这将允许用户连接到新数据库,而不会因日志传送而失去连接。(它还允许使用更精细的安全权限,因为只读副本无法编辑)

我可以想出两种模式来实现这一点

  • 删除表、创建表、创建索引
  • 使用MERGE语句插入/更新/删除记录
  • 我已经使用上面的方法1实现了这个解决方案,而且效果很好

    每天丢弃所有数据对我来说有点沉重。上述方法1是否有任何副作用促使我使用方法2

    为了提供规模感,我只同步了3张表

    Table 1 - 38 columns - 13,110 rows
    Table 2 - 82 columns - 17,421 rows
    Table 3 - 22 columns - 249 rows
    
    生成的数据库约为1.3 GB。(里面还有其他一些桌子)


    我希望得到方法1和方法2方面的指导,以及是否有其他方法我没有考虑。

    截断
    插入
    将比删除或合并更有效。

    您研究过事务性复制吗?我没有足够的技术诀窍来提供更多帮助,但这可能是一个值得一看的选项atI没有在这个问题的背景下研究过,因为日志传送是我们的供应商为我们提供数据副本所支持的方法。我假设,由于日志附带的副本是只读的,所以我无法将其用于事务性复制。我将试一试,并将其与我的drop/create进行比较。谢谢(我今天晚些时候会再次访问这个问题,一旦我对这个问题进行了解释)。谢谢。从时钟角度看,这两种方法都在12秒内完成。我喜欢将clean
    TRUNCATE
    INSERT-INTO
    与重建所有索引进行比较。我不得不对我的存储过程做一点小小的修改,以使用CTE而不是临时表来让“INSERT-INTO”工作,但随着障碍的清除,我现在有了更清晰的代码。谢谢