我想知道在存儲過程中使用Views, Temp Tables and Direct Queries
的性能。我應該使用什麼來提高性能。查看/查詢/臨時表
我有一個表,每當觸發器被觸發時被創建。我知道這個觸發器會在非常罕見的情況下被觸發,並且在安裝時只會觸發一次。
現在我必須在很多地方使用觸發器創建的表來獲取數據,並且我確認沒有人在該表中進行任何更改。即ReadOnly
表。
我不得不與多個表一起使用這個表中的數據的加入,結果取作進一步查詢說
select * from triggertable
使用臨時表
select ... into #tx from triggertable join t2 join t3 and so on
select a,b, c from #tx --do something
select d,e,f from #tx ---do somethign
--and so on
--around 6-7 queries in a row in a stored procedure.
使用瀏覽
create view viewname
(
select ... from triggertable join t2 join t3 and so on
)
select a,b, c from viewname --do something
select d,e,f from viewname ---do somethign
--and so on
--around 6-7 queries in a row in a stored procedure.
此視圖也可用於其他地方。所以,我會在數據庫中,而不是在SP
要創建通過直接查詢
select a,b, c from select ... into #tx from triggertable join t2 join t3 join ... --do something
select a,b, c from select ... into #tx from triggertable join t2 join t3 join ... --do something
.
.
--and so on
--around 6-7 queries in a row in a stored procedure.
現在,我可以創建所有即將查詢視圖/臨時表/直接查詢使用。
在這種情況下最好使用什麼。
是的,可觸發表的來源將始終相同。它將始終具有相同的列號和相同的名稱。只有我需要的是在不同的存儲過程的多個地方使用該表的子集。即使我提到的這個觀點也可能在多個程序中使用。 – 2010-06-10 08:30:00