2009-08-03 19 views
3

我有使用WITH子句,或公共表表達式,用UNION ALL語句描述here與SQL服務器的樹形結構通過一個表格來重現幾個查詢。如果我要創建相同的VIEW,而不是使用WITH子句包含它並在每次運行查詢時生成它,我會看到性能上的差異嗎?由於它在多個查詢中使用,實際創建視圖通常會被認爲是很好的做法嗎?與普通表表達式與CREATE VIEW性能

回答

4

什麼你看是Common Table Expression,而不是一個View。如果你在做recursion,你需要堅持使用CTE,而不是試圖將其轉換爲視圖。

查看在MS SQL不給你任何性能優勢,除非你對他們creating clustered indexes。從你的問題的聲音來看,情況並非如此。你可能會更好地將你的CTE封裝在stored procedure之內。

+0

http://msdn.microsoft.com/en-us/library/ms190766.aspx 它看起來像一個公用表表達式是我目前使用的WITH子句。 CTE和CREAT實際VIEW之間是否存在性能差異? – 2009-08-03 21:15:01