MERGE与DROP表和SQL Server中的重建索引

时间:2015-04-14 16:11:10

标签: sql-server tsql stored-procedures log-shipping

我有一个"日志发货"生活在第三方的数据库的副本。日志传送每15分钟运行一次,此时将删除与数据库的所有连接。该数据库用于报告目的。

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

我可以想到两种模式来实现这一目标。

  1. 删除表,创建表,创建索引
  2. 使用MERGE语句插入/更新/删除记录
  3. 我已经使用上面的方法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的指导,以及是否有其他方法我没有考虑。

1 个答案:

答案 0 :(得分:2)

TRUNCATEINSERT比丢弃或合并更有效。