當我選擇唯一的ID我沒有看到聚簇索引掃描,但是當我選擇一個XML列時,我看到聚簇索引掃描。聚集索引掃描
索引是否僅用於Where子句,但不適用於select子句?
declare @LenderID int = null,
@LenderCode varchar(64)= null
--Add Lender Search as in Lender Maintenance
if @LenderID is not NULL
Select @LenderCode = CODE_TX from LENDER
where ID = @LenderID and PURGE_DT IS NULL
declare @StartDate datetime2 = '1/22/2014 12:00:00 AM',
@EndDate datetime2 = '1/24/2014 12:00:00 AM'
select rh.id
from REPORT_HISTORY rh
where
(
(@StartDate is NULL or @EndDate is NULL)
or
(RH.CREATE_DT between @StartDate and @EndDate)
)
and
(
RH.LENDER_ID = @LenderID
or
@LenderCode is NULL
)
而且令人驚訝的是一個數據庫無法處理的條款一樣@StartDate爲空或@EndDate爲NULL,去索引掃描,如果給定值爲null應該忽略的領域。提前
你可以在哪裏發佈兩個* actual *執行計劃嗎? –
它生成巨大的XML,我會嘗試 – Roninn
你是如何定義你的聚集索引?你能發佈定義它的腳本嗎?實際執行計劃的屏幕截圖也會有所幫助。 –