您现在的位置是:首页 >

优化程序性能的方法 优化你的PowerBuilder程序

火烧 2023-02-17 07:46:35 1036
优化你的PowerBuilder程序   一段程序 完成所需要的功能固然重要 但是提高执行效率 提高代码的可重复利用性 提高程序的可读性也是很重要的 刚刚读了一个前辈的帖子 感觉受益匪浅 拿出来与大家

优化你的PowerBuilder程序  

优化程序性能的方法 优化你的PowerBuilder程序

  一段程序 完成所需要的功能固然重要 但是提高执行效率 提高代码的可重复利用性 提高程序的可读性也是很重要的 刚刚读了一个前辈的帖子 感觉受益匪浅 拿出来与大家共享

  优化你的PowerBuilder程序   一 处理 SQL 语句    缓冲 SQL 语句   在应用程序中 有时需要反复调用同一组SQL语句 在这种情况下 可以通过在应用中为这些 SQL建立缓冲区来提高执行性能 在缺省情况下 SQL语句的缓冲区是关闭的 你可以通过如下语句打开它   SQLCACHE = n   n 表示装入缓冲区的 SQL 语句数量(缺省为 )   例如   dw_ SetTransObject(sqlca)   SQLCA dbParm = SQLCache =   dw_ retrieve()   如果将上例的 SQLCache = 改为 SQLCache = 此句的执行效率将提高五分之一左右 但应注意缓冲区的大小 否则也将影响程序执行的性能   注 此方法对用 ODBC 和 ORACLE 连接的数据库非常有效    捆绑变量   请看下例   SQLCA DBPARM = DISABLEBIND=   INSERT INTO DA_DH VALUES( 河南 )   INSERT INTO DA_DH VALUES( 河南 )   INSERT INTO DA_DH VALUES( 河南 )   INSERT INTO DA_DH VALUES( 河南 )   INSERT INTO DA_DH VALUES( 河南 )   INSERT INTO DA_DH VALUES( 河南 )   这里未使用捆绑变量 再插入时 PB 将重新处理每个带有新值的SQL语句   如果将上例改为   SQLCA DBPARM = DISABLEBIND=   INSERT INTO DA_DH VALUES( 河南 )   INSERT INTO DA_DH VALUES( 河南 )   INSERT INTO DA_DH VALUES( 河南 )   INSERT INTO DA_DH VALUES( 河南 )   INSERT INTO DA_DH VALUES( 河南 )   INSERT INTO DA_DH VALUES( 河南 )   则系统将把 INSERT 语句按如下格式进行处理   INSERT INTO DA_DH VALUES(? ?)   其中 ? 称为占位符 系统性能将有所增强    用数据窗口代替 SQL 语句   通常 为了获得某些数据 采用数据窗口和 SQL 语句都是可行的 但是PB 对数据窗口和 SQL 语句采用不同的处理机制 因此 具有不同的效率   例 为里检索电话档案中的用户名 可以利用 SQL 语句 将所有的数据检索到一个多行编辑中 也可以检索到一个数据窗口中   如果使用第一种方法   首先定义一个游标     DECLARE CUR CURSOR FOR     SELECT DA_DH HM     FROM DA_DH ;   然后可以     STRING stxt[] st     int li     open cur     do li = li +     fetch cur     into :stxt[li] ;     st=st+stxt[li] + ~r~n     loop while stxt[li]<>     close cur;     mle_ txt = st   也可以使用第二种方法   dw_ settransobject(sqlca)   dw_ retrieve()   利用 POWERBUILDER PROFILER 工具进行检查 对比两种方法所需时间如下   方法     所需时间 (百分之一秒)   SQL 语句     数据窗口      由于数据窗口或DATASTORE使用了标准的内嵌代码 而不是由开发人员进行全部编码 同时编译执行的速度比解释执行的速度快的多 因此在开发过程中应尽量使用数据窗口和DATASTORE 即使是必须用SQL语句的时候 也应该尽量将它们定义为存储过程(特别是在多用户的环境中) 以提高应用程序的性能  

lishixinzhi/Article/program/SQL/201311/16334  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码