在oracle 中,如果要一连串执行多个sql 语句;比如 语句1: update talbe1 set...语句2: insert into table2 ...语句3 :insert into tabel3 ...那么如果我用delphi 的AdoQuery来执行它;就可以有两种方法:方法1: AdoQuery.text:='语句1' ;
AdoQuery.ExecSQL;
AdoQuery.text:='语句2';
AdoQuery.ExecSQL;
AdoQuery.text:='语句3' ;
AdoQuery.ExecSQL;方法2:
AdoQuery.text:='begin '+
'语句1;' +
'语句2;' +
'语句3;' +
' end;';
AdoQuery.ExecSQL;
也就是说:方法一是让每条sql语句逐步运行;
方法二是让所有sql语句一起运行;
我想问问各位:
上面两种做法,哪种效率更高。
我个人认为是第二种;
而且第二种方法是一条执行语句,所以实际上带有了事务功能;
不过我的一些朋友说第二种效率反而没有第一种效率高;
所以想问问大家,究竟这两种方法有何区别,大家平时都用哪种?
AdoQuery.ExecSQL;
AdoQuery.text:='语句2';
AdoQuery.ExecSQL;
AdoQuery.text:='语句3' ;
AdoQuery.ExecSQL;方法2:
AdoQuery.text:='begin '+
'语句1;' +
'语句2;' +
'语句3;' +
' end;';
AdoQuery.ExecSQL;
也就是说:方法一是让每条sql语句逐步运行;
方法二是让所有sql语句一起运行;
我想问问各位:
上面两种做法,哪种效率更高。
我个人认为是第二种;
而且第二种方法是一条执行语句,所以实际上带有了事务功能;
不过我的一些朋友说第二种效率反而没有第一种效率高;
所以想问问大家,究竟这两种方法有何区别,大家平时都用哪种?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货