是否使用繃定變數的一些建議

張衝andy發表於2016-12-10
 1、建議使用繫結變數的列:對於流水號、訂單號、使用者ID、電話號碼、身份證
號碼、證件號碼等,這類列的特點是列的唯一性較好、列的不同值數量跟表的
資料量比較接近,而這類列涉及的SQL語句往往存在高併發,寫成繫結變數會
大大減少資料庫的解析成本。 
 
 2、不建議使用繫結變數的列:能夠列舉的列(比如狀態型別欄位,這部分型別
欄位往往不同值較少,一般即使上千萬的資料表中該列也只有十多個、幾十個
的不同值), 即使不寫繫結變數也只會產生極少數的SQL_id,這部分的oracle
解析消耗微乎其微,並且這種型別的列有可能存在傾斜資料,而如果使用繫結
變數,則對於傾斜資料的評估並不準確,可能導致該列無法走索引範圍掃描、
或者影響表JOIN階段驅動表的選擇等。 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2130224/,如需轉載,請註明出處,否則將追究法律責任。

相關文章