-1
我创建了一个sql查询来更新表,但它有一个性能问题。从我的asp.net平台将从SQL数据库超时,当我从存储过程更新下面。你能帮我让它更快,并帮助数据库超时问题?如何处理SQL存储过程中更新查询的性能问题?
UPDATE e SET e.X=tablo.X,E.Y=ISNULL(tablo.Y,0),e.V=tablo.V,e.ADRES=tablo.ADRES,e.A=tablo.A
FROM tbltabloor e
JOIN tablo_NOT tablo ON e.Z=tablo.Z AND E.T=convert(datetime,CONVERT(varchar(8),tablo.T,112)) AND E.U=tablo.U
WHERE NOT exists (select * from tablo_NOT t where t.Z =e.Z AND E.T=convert(datetime,CONVERT(varchar(8),t.T,112)) AND E.U=t.U
AND E.X=t.X AND ISNULL(t.Y,0)=ISNULL(E.Y,0) AND E.V=t.V AND E.ADRES=t.ADRES
)
第一步是在SSMS中运行它,按CTRL-L和观察查询计划。它会建议可能有帮助的索引。 –
问题可能真的在任何地方 - 这取决于表的大小,索引等 - 显示您的查询计划! – Charleh
在'ON'和'WHERE'子句中使用'CONVERT'会限制优化器使用索引的能力。从'DATETIME'提取日期的索引计算列可能会有所帮助。 – HABO