- 論壇徽章:
- 15
|
本帖最后由 yulihua49 于 2012-06-11 12:44 編輯
rain_fish 發(fā)表于 2012-06-11 10:48 ![]()
同樣的sql,只是查詢條件的字段內(nèi)容變化了,實在不知道解決辦法,還請高人指點
具體描述:
http://bbs.ch ...
就是要求你在語句中使用綁定變量,而不是使用值。
在OCI或OCCI中,使用綁定變量是一件相當(dāng)麻煩的事。使用PRO*C就能夠自動綁定。
我們?yōu)榱四軌蛟贠CI中簡化綁定變量的操作,建立了DAU(Data Access Unit)包裝器框架,類似JAVA的Hibernate,
簡化了OCI的使用,有興趣到SDBC QQ群索取源碼和說明書。
給你一個例子的結(jié)果日志:
OAD_mk_ins sth=0,INSERT INTO CMS_ACC.CM_DIAGRAM (sch_date,line_no,trip_code,trn_ph
y_id,dest_id,tab_no,direction,file_name,count,stations) VALUES (TO_DATE(:1,'YYYYMMDD'), :2, :3, :4, :5, :6, :7,
:8, :9, :10)
2 t_OAD:27814 06/06 15:14'23 loadfile:rows=4631,upd=0,TIMEVAL=269361(微秒)
就是存了4631個記錄只消耗了0.269秒。
你可以看看那個語句,它的值,每行都是不同的,但是每個語句都是相同的,因此只解析一次,使得插入這批數(shù)據(jù)的時間很短。
查詢語句也同樣:
bind_select:cursor=0,sqlo_prepare=SELECT TO_CHAR(sch_date,'YYYYMMDD') sch_date,line
_no,trip_code,trn_phy_id,dest_id,tab_no,direction,file_name,count,stations FROM CMS_ACC.CM_DIAGRAM WHERE sch_da
te=TO_DATE(:1,'YYYYMMDD')
5 demo:29843 06/11 11:59'48 release_DB_connect tid=1,pool[0].0,USEC=3548462388563805
5 demo:29843 06/11 11:59'48 DiagTrip:read 4631,77261 Rec's TIMEVAL=430709
|
|