sql:DELETE + INSERT vs UPDATE + INSERT

THX*_*138 5 sql t-sql sql-server-2008

有人问过类似的问题,但由于它总是取决于我,所以我要分别询问我的具体情况.

我有一个网站页面,显示来自数据库的一些数据,并从该数据库生成数据,我必须做一些相当复杂的多连接查询.

数据每天更新一次(每晚).

我想预先生成所述视图的数据,以加快页面访问速度.

为此,我正在创建一个包含我需要的确切数据的表.

问题:对于我的情况,完成表格擦除然后插入是否合理?或者我应该更新,插入?

SQL明智的看起来像DELETE + INSERT会更容易(INSERT部分是单个SQL表达式).

编辑: RDBMS:MS SQL Server 2008 Ent

SQL*_*ace 13

TRUNCATE将比删除更快,因此如果您需要清空表,请执行此操作

您没有指定您的RDBMS供应商,但其中一些也有MERGE/UPSERT命令这使您可以在数据存在时更新表,如果不存在则更新

  • 2007年不存在,你的意思是2005年或2008年,如果2008年再看看MERGE http://msdn.microsoft.com/en-us/library/bb510625.aspx (2认同)