我在表中有800條記錄,我用觸發器從4個表中更新了20多個字段,但非常慢需要25秒來更新更改,我知道計算字段更快,但我無法使用計算字段來從另一個表中獲取/更新字段數據。我可以使用哪些其他方法?如何加速觸發器
下面我想表明的是我是多麼想更新場
create TRIGGER [dbo].[WO-WHLINFO]
ON [dbo].[WORKORDERS]
AFTER INSERT,UPDATE
AS
BEGIN IF TRIGGER_NESTLEVEL() > 1
RETURN UPDATE T1
SET [C/S ANGLE2]=T2.[C/S ANGLE2],
[BH SIZE2]=T2.[BH SIZE2],
[COLOR]=T2.[COLOR],
[MRP Wheel]=T2.[STOCK NO],
[WO PN]=T2.[WHL-ASSY LOOKUP]
FROM WORKORDERS T1 CROSS APPLY (SELECT TOP 1 *
FROM [WHl] T2
WHERE [WHEEL PN 1]=T2.[WHL-ASSY LOOKUP] OR
[WHEEL PN 1-S]= T2.[STOCK NO]) T2
END
什麼其他選擇,我可以用它來從另一個表更新現場數據?
看看這裏:http://stackoverflow.com/questions/42780910/sql-taking-too-much-time - 用於執行的-一個查詢/ 42781448#42781448。看起來你有一個缺失索引 –
謝謝卡洛斯,但我可以使用數據庫引擎優化顧問。因爲我有快遞版 – Joe
大多數觸發器至少有一個對「插入」或「刪除」行的引用。 – HABO