0
我怎樣才能通過查詢執行計劃時,鍵查詢進入查詢中的目標?我不知道到底通過觀察尋求謂詞,請幫我在這我怎樣才能提高效率的關鍵查找和表掃描在我的查詢在sql服務器
在表中定位到哪些特定的鍵在這裏下面我貼我的查詢執行計劃(鍵查找)
請找我現在用
SELECT
CONVERT(VARCHAR(6), CTC_VALUE_DATE, 12) AS CTC_VALUE_DATES ,
MCURR.CURRENCY_CODE,
FTS_CUSTOMER_TRAN_CONTROL.*,
MCURR.*
FROM
FTS_CUSTOMER_TRAN_CONTROL
INNER JOIN
@TEMPTABLE TEMP ON FTS_CUSTOMER_TRAN_CONTROL.CTC_PACKAGE_ID = TEMP.PACKAGEID
LEFT JOIN
MASTER_CURRENCY AS MCURR ON MCURR.CURRENCY_ID = FTS_CUSTOMER_TRAN_CONTROL.CTC_CURR_CODE
WHERE
CTC_GEN_REFID = @REFIDS
如果你做了一個'SELECT *',那麼SQL Server將不得不去查看實際的表數據(使用昂貴的'Key Lookup'),因爲你正在請求**所有列**。關於這一點你可以做的不多 - 除了不使用'SELECT *'**而是指定一個實際需要的小列列表。 – 2012-07-31 16:39:51
你真的需要兩個表中的*嗎?這可能是關鍵查找的原因。爲什麼不重新編寫查詢,以便只需提取需要的列?那麼你可以優化索引... – 2012-07-31 16:40:02
另外:'表掃描'表明你沒有該表上的聚集索引。這很糟糕 - 您應該**總是**在「真實」數據表中擁有一個**好的聚集索引(例如,在「INT IDENTITY」列中)。 – 2012-07-31 16:48:30