因為繫結變數後不知道變數的具體值,會影響優化器的執行計畫,看這個例子:
表中有10000行列a的值從1-10000
sql> variable id number;
sql> execute :id :=9;
sql> select * from t where a<:id;
| 0 | select statement | | 500 | 13000 | 3 (0)|
| 1 | table access by index rowid| t | 500 | 13000 | 3 (0)|
|* 2 |
index range scan | i | 90 | | 2 (0)|
sql> execute :id :=9000;
sql> select * from t where a<:id;
| 0 | select statement | | 500 | 13000 | 3 (0)|
| 1 | table access by index rowid| t | 500 | 13000 | 3 (0)|
|* 2 |
index range scan | i | 90 | | 2 (0)|
1、當處理的資料比較小,解析時佔響應時間比重比較大時,就要盡量避免硬解析,所以最好使用繫結變數
2、當處理的資料比較大,全表掃瞄時間佔響應時間比較大時,就要盡量避免全表掃瞄,就盡量別用繫結變數,因為繫結變數會影響優化器的優化,增大全表掃瞄的可能性
又大又新不一定好。
前一段時間有次在支付寶給餘額寶打錢時,遇到這麼乙個鬱悶的事情,首先銀行卡不能直接往餘額寶裡面直接打錢,先打到支付寶餘額裡面,才能衝到餘額寶裡面,當我從支付寶預設頁面進入充值到餘額的介面時,發現和之前往餘額寶打錢進了同乙個介面,好生鬱悶,後來往返數次之後發現了奧妙 這個頁面包含乙個tab介面設計 如圖...
又大又新不一定好。
前一段時間有次在支付寶給餘額寶打錢時,遇到這麼乙個鬱悶的事情,首先銀行卡不能直接往餘額寶裡面直接打錢,先打到支付寶餘額裡面,才能衝到餘額寶裡面,當我從支付寶預設頁面進入充值到餘額的介面時,發現和之前往餘額寶打錢進了同乙個介面,好生鬱悶,後來往返數次之後發現了奧妙 這個頁面包含乙個tab介面設計 如圖...
逃避不一定躲得過,面對不一定最難過
國王有七個女兒,這七位美麗的公主是國王的驕傲。她 們那一頭烏黑亮麗的長髮遠近皆知。所以國王送給她們每人一百個漂亮的髮夾。有一天 早上,大公主醒來,一如往常地用髮夾整理她的秀髮,卻發現少了乙個髮夾,於是她偷偷地到了二公主的房裡,拿走了乙個髮夾。二公主發現少了乙個髮夾,便到三公主房裡拿走乙個髮夾 三公主...