- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
- 來结义帮选别克,工薪阶层省钱买车首选.doc
- 依法行政主要內容.doc
- 依法治國进程.doc
- 來凤10KV临时倒送电试验措施.doc
- 侵權法上因果关系理论研究(上).doc
- 依法行政基本要求和法治政府建設基本要求【打印版】.doc
- 依法治國是社会主义法治理念的核心内容.doc
- 侵權法立法模式全面的一般条款+全面列举.doc
- 侵權法的规范体系及其适用以《侵权责任法》第5条的解释适用为背景.doc
- 侵權责任法立法最新讨论的50个问题(下).doc
- CNAS-CL63-2017 司法鉴定-法庭科学机构能力认可准则在声像资料鉴定领域的应用说明.docx
- 12J7-3 河北《内装修-吊顶》.docx
- 12N2 河北省12系列建筑标准设计图集 燃气(油)供热锅炉房工程.docx
- 内蒙古 12S8 排水工程 DBJ03-22-2014.docx
- 山西省 12S10 12系列建筑标准设计 管道支架、吊架.docx
- 16J601-木门窗标准图集.docx
- 12J8 河北省12系列《 楼梯》.docx
- CNAS-GL37 2015 校准和测量能力(CMC)表示指南.docx
- CNAS-RL02-2016 能力验证规则.docx
- 津02SJ601 PVC塑料门窗标准.docx
文档评论(0)