MERGE vs DROP Table 并在 SQL 服务器中重建索引
MERGE vs DROP Table and Rebuild Indexes in SQL Server
我有一个位于第三方的数据库的 "log shipped" 副本。日志传送每 15 分钟运行一次,届时所有与数据库的连接都会被删除。该数据库用于报告目的。
我决定将一些数据从日志传送(只读)数据库中提取到每晚刷新的新数据库中。这将允许用户连接到新数据库,而不会有因日志传送而失去连接的风险。 (它还允许使用更精细的安全权限,因为只读副本无法编辑)
我可以想到 2 种模式来完成此操作。
- 删除 Table、创建 Table、创建索引
- 使用 MERGE 语句 insert/update/delete 记录
我已经使用上面的方法 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 的指导,以及是否还有其他我没有考虑的方法。
TRUNCATE
和 INSERT
比删除或合并更有效。
我有一个位于第三方的数据库的 "log shipped" 副本。日志传送每 15 分钟运行一次,届时所有与数据库的连接都会被删除。该数据库用于报告目的。
我决定将一些数据从日志传送(只读)数据库中提取到每晚刷新的新数据库中。这将允许用户连接到新数据库,而不会有因日志传送而失去连接的风险。 (它还允许使用更精细的安全权限,因为只读副本无法编辑)
我可以想到 2 种模式来完成此操作。
- 删除 Table、创建 Table、创建索引
- 使用 MERGE 语句 insert/update/delete 记录
我已经使用上面的方法 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 的指导,以及是否还有其他我没有考虑的方法。
TRUNCATE
和 INSERT
比删除或合并更有效。