在不同情况下触发性能

时间:2016-11-14 11:33:02

标签: performance sql-server-2005 triggers

我有一个表来收集每个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
   

将数据从一个表复制到另一个表在性能方面比在同一服务器上从一个数据库表复制到另一个数据库表更好吗?

假设每一秒我们都有一个插入触发我们的触发器。

0 个答案:

没有答案