在这种情况下,触发会更有效



i有一个实例,我们有一个主记录和几个相关表。在这种情况下,我们将所有历史记录保留在相关表中。因此,在这种情况下,看起来像这样

Main Table - Visits
ID
Date
CurrentRoomHistoryID
CurrentStatusHistoryID
Related Table - RoomHistory
ID
Name
StartDate
EndDate
Related Table - StatusHistory
ID 
StatusID
StartDate
EndDate

为了速度,您可以看到我们将当前房间的ID和历史记录保存在主桌上。现在,当更新时,我设置了上一个房间或状态记录的结束日期,然后更新主表。

拥有将结束日期添加到上一个记录并更新主表的TRIGGER会更快,更有效吗?

我认为效率不会太大取决于单独的更新查询或触发,这取决于如何过滤要更新的记录。实际上,您在更新查询中所拥有的任何内容都将进入触发定义 - 可能会有一些小更改。

就性能而言。您的ID字段应在所有3个表中正确索引。

如果您要更新某些内容,则触发器可能会更快,以更新或插入当前的记录。但是,由于您正在更新上一个房间或状态数据,因此寻求和更新将在触发或更新查询中相同的时间。

最新更新