- 论坛徽章:
- 15
|
本帖最后由 yulihua49 于 2012-06-11 12:44 编辑
rain_fish 发表于 2012-06-11 10:48 ![]()
同样的sql,只是查询条件的字段内容变化了,实在不知道解决办法,还请高人指点
具体描述:
http://bbs.ch ...
就是要求你在语句中使用绑定变量,而不是使用值。
在OCI或OCCI中,使用绑定变量是一件相当麻烦的事。使用PRO*C就能够自动绑定。
我们为了能够在OCI中简化绑定变量的操作,建立了DAU(Data Access Unit)包装器框架,类似JAVA的Hibernate,
简化了OCI的使用,有兴趣到SDBC QQ群索取源码和说明书。
给你一个例子的结果日志:
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秒。
你可以看看那个语句,它的值,每行都是不同的,但是每个语句都是相同的,因此只解析一次,使得插入这批数据的时间很短。
查询语句也同样:
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
|
|