我有一个表来收集每个check_in的日志。我想选择4列以后再处理它们。我在每个插入上都放置了一个触发器,并复制了列。我很困惑在哪方面做到这一点。为了获得最佳性能。以下是我想出的一些不同方法。假设我的目标表已编入索引。
ALTER trigger GetCheckIn_HA_Transit
on tableXyz
AFTER INSERT
as
declare @cardName nvarchar(max)
declare @checkIn datetime
declare @direction varchar(30)
declare @terminal varchar(30)
select
@direction = str_direction,
@terminal = TERMINAL,
@cardName = card_number,
@checkIn = transit_date
from tableXyz
GO
INSERT INTO logs(direction,terminal,cardName,checkIn)
VALUES
(@direction,@terminal,@cardName,@checkIn)
end
我发现的另一种方式是没有声明
ALTER trigger GetCheckIn_HA_Transit
on tableXyz
AFTER INSERT
as
GO
INSERT INTO
logs(direction,terminal,cardName,checkIn)
SELECT(STR_DIRECTION,TERMINAL,card_number,transit_date)FROM tableXyz
将数据从一个表复制到另一个表在性能方面比在同一服务器上从一个数据库表复制到另一个数据库表更好吗?
假设每一秒我们都有一个插入触发我们的触发器。