2010-11-02 55 views
1

表的別名比使用表名更快嗎?
或者這沒有什麼區別?
你們有使用表別名的一些好的提示嗎?或者推薦/不推薦?表別名比表名更快嗎?

感謝,
布魯諾

+2

它們的輸入速度更快:)因爲這個原因我總是使用它們並減少代碼膨脹。 – AdaTheDev 2010-11-02 12:29:01

回答

5

不,他們不是。

查詢引擎甚至沒有看到它們(它們只出現在計劃的註釋中)。

執行查詢時,引擎根據查詢計劃處理實際的物理對象(表,索引等)。

當查詢說是這樣的:

SELECT * 
FROM mytable t 

,優化創建一個類似的計劃:

|--Clustered Index Scan(OBJECT:([mydb].[dbo].[mytable].[pk_mytable] AS [t])) 

和查詢引擎解釋是像「找到的第一頁索引pk_mytable並遍歷頁面的鏈接列表,返回找到的所有記錄,直到沒有更多記錄「。

在這個階段,你怎麼確定別人的查詢並不重要:引擎處理像頁面,指針等物理對象,而不是像別名這樣的邏輯事物。

+1

+1,很好的答案 – AdaTheDev 2010-11-02 12:35:55

+0

感謝您的信息! – bruno 2010-11-02 13:41:42

1

它們不是更快,但它們確實使代碼更易於閱讀。它們對於某些事物是必需的,例如當您多次連接到一個表以及使用派生表時。

我發現總是使用別名並在select中別名所有列,以便維護人員無需弄清楚每個字段在六個月後出現在複雜查詢中的哪個表。