我想提高這個更新查詢的性能,因爲當它需要大量的時間來執行:如何提高sql中更新查詢的性能?
Qry = "update tab1 set cDate=GetDate() where right('000000000000'+in_num,12)='"
& InvNo.PadLeft(12, "0") & "' and (Total-Amount)<>Balance and cDate is null"
我想提高這個更新查詢的性能,因爲當它需要大量的時間來執行:如何提高sql中更新查詢的性能?
Qry = "update tab1 set cDate=GetDate() where right('000000000000'+in_num,12)='"
& InvNo.PadLeft(12, "0") & "' and (Total-Amount)<>Balance and cDate is null"
你爲什麼要強制填充in_num
和InvNo
與領先的0與:
right('000000000000'+in_num,12) = InvNo.PadLeft(12, "0")
這將防止使用in_num
上的任何索引。
正是我要問嗎? 而且,CDATE索引? – AngerClown 2010-05-17 13:28:44
你沒有提到你正在使用的數據庫,但如果它支持計算列,那麼你可以通過填充的行,然後你就可以創建索引在創建計算列提高了查詢速度。
當然,這是假設你不能用簡單的整數類型的發票號。如果你可以直接使用in_no,那麼確保你在該列上有一個索引。
請,今後,使用「101 010」按鈕,代碼行... – mosg 2010-05-17 13:17:06