本帖最后由 yulihua49 于 2014-7-24 14:28 编辑
earth2mars 发表于 2014-7-22 15:46 ![]()
那不就是软解析吗??
如果SQL变化了呢? 必须重新解析吧?
哎,你根本不知道什么是解析。
一个未关闭的游标,再次使用,是没有解析这个过程的,使用的是现成的执行计划。
cursor=prepare(stmt);
for every rows {
fill_data
bind for cursor with data //绑定新数据。
execute cursor;
}
close cousor
当然是语句不变化,数据可以变化。
看这个语句:
INSERT INTO mlc.tjrb (tjdate,unit,tabname,flg,dat1,dat2,dat3,dat4,dat5,dat6,dat7,dat8,dat9,dat10,dat11,dat12,dat13,dat14,dat15,dat16,dat17,dat18,dat19,dat20,dat21,dat22,dat23,dat24,dat25,dat26,dat27,dat28,dat29,dat30,dat31,dat32,dat33,dat34,dat35,dat36,dat37,dat38,dat39,dat40,dat41,dat42,dat43,dat44,dat45,dat46,dat47,dat48,dat49,dat50) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
里边没有数据,把它prepare了(解析),生成一个游标,然后用上述那个循环,绑定数据,执行。那中间是没有解析的。
|