网站大量收购独家精品文档,联系QQ:2885784924

優化你的PowerBuilder程序.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
優化你的PowerBuilder程序

优化你的PowerBuilder程序 PowerBuilder是快速有效的开发工具,在程序实现过程灵活 多样,下面介绍一下在开发高校产品过程中积累的一些经验。 一、处理 SQL 语句 1、缓冲 SQL 语句 在应用程序中,有时需要反复调用同一组 SQL语句, 在这种情况下,可以通过在应用中为这些 SQL 建立缓冲区来 提高执行性能。 在缺省情况下,SQL 语句的缓冲区是关闭的,你可以 通过如下语句打开它: SQLCACHE = n n 表示装入缓冲区的 SQL 语句数量(缺省为0)。 例如: dw_1.SetTransObject(sqlca) SQLCA.dbParm = SQLCache = 0 dw_1.retrieve() 如果将上例的 SQLCache = 0 改为 SQLCache = 25, 此句的执行效率将提高五分之一左右。但应注意缓冲区的大小, 否则也将影响程序执行的性能。 注:此方法对用 ODBC 和 ORACLE 连接的数据库非常有效。 2、捆绑变量 请看下例: SQLCA.DBPARM = DISABLEBIND=1 INSERT INTO DA_DH VALUES(1,河南0) INSERT INTO DA_DH VALUES(2,河南1) INSERT INTO DA_DH VALUES(3,河南2) INSERT INTO DA_DH VALUES(4,河南3) INSERT INTO DA_DH VALUES(5,河南4) INSERT INTO DA_DH VALUES(6,河南5) 这里未使用捆绑变量,在插入是 PB 将重新处理每个带有 新值的SQL语句。如果将上例改为: SQLCA.DBPARM = DISABLEBIND=0 INSERT INTO DA_DH VALUES(1,河南0) INSERT INTO DA_DH VALUES(2,河南1) INSERT INTO DA_DH VALUES(3,河南2) INSERT INTO DA_DH VALUES(4,河南3) INSERT INTO DA_DH VALUES(5,河南4) INSERT INTO DA_DH VALUES(6,河南5) 则系统将把 INSERT 语句按如下格式进行处理: INSERT INTO DA_DH VALUES(?,?) 其中 ? 称为占位符。系统性能将有所增强。 3、用数据窗口代替 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 + 1 fetch cur into :stxt[li] ; st=st+stxt[li] + ~r~n loop while stxt[li] close cur; mle_1.txt = st 也可以使用第二种方法: dw_1.settransobject(sqlca) dw_1.retrieve() 利用 POWERBUILDER PROFILER 工具进行检查,对比两种 方法所需时间如下 方法 所需时间 (百分之一秒) SQL 语句    100.9857 数据窗口 49.0133   由于数据窗口或 DATASTORE 使用了标准的内嵌的代码, 而不是有开发人员进行全部编码,同时编译执行的速度比解释 执行的速度快的多,因此在开发过程中应尽量使用数据窗口和 DATASTORE.. 即使是必须用 SQL

文档评论(0)

sd47f8cI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档