




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PB(:独孤求败2003-05-27)一、处理SQL语句1、缓冲SQL在应用程序中,有时需要反复调用同一组SQL些SQL建立缓冲区来提高执行性能。在缺省情况下,SQLSQLCACHE=n n表示装入缓冲区的SQL语句数量(0)。SQLCA.dbParm="SQLCache=0"如果将上例的"SQLCache=0"改为"SQLCache=25",此句的执行效率将提高五分之一左右。但应注意缓冲区的大小,否则也将影响程序执行的性能。注:此方法对用ODBC和ORACLE连接的数据库非常有效。2、变SQLCA.DBPARM=INSERTINTODA_DHvalueS("1","0")INSERTINTODA_DHvalueS("2","1")INSERTINTODA_DHvalueS("3","2")INSERTINTODA_DHvalueS("4","3")INSERTINTODA_DHvalueS("5","4")INSERTINTODA_DHvalueS("6","5")这里未使用变量,在插入是PB将重新处理每个带有 SQLCA.DBPARM=INSERTINTODA_DHvalueS("1","0")INSERTINTODA_DHvalueS("2","1")INSERTINTODA_DHvalueS("3","2")INSERTINTODA_DHvalueS("4","3")INSERTINTODA_DHvalueS("5","4")INSERTINTODA_DHvalueS("6","5")则系统将把INSERTINSERTINTODA_DH其中"?"3、用数据窗口代替SQL通常,为了获得某些数据,采用数据窗口和SQLPB和SQL语句采用不同的处理机制,因此,具有不同的效率。例:为里检索中的用户名,可以利用SQL语句,将所有的数据检索到一个多行编辑中,也可以检索到一个数据窗口中。如果使用第一DECLARECURCURSORFORSELECT"DA_DH"."HM"FROMSTRINGstxt[],stintliopendoli=li+1fetchcurinto:stxt[li];st=st+stxt[li]+"~r~n"loopwhilestxt[li]<>""closecur;mle_1.txt=利用POWERBUILDERPROFILER工具进行检查,对比两种方法所需时间如下 所需时间(百分之一秒)SQL语 数据窗 DATASTORE使用了标准的内嵌的代码,而不是有开发人员进行全部编码,同时DATASTORE..即使是必须用SQL语句的时候,也应该尽量将它们定义为过程(特别是在多用户的环PB23456789下面,1连库操作是非常影响执行速度的操作.因此在程序中,一旦与数据库连接后就应当尽量保持与数据库的连接,减少连接数据库的次数.PowerBuilder提供里两个函数来建立数据窗口与事务对象的连在程序中应当尽量使用SETTRANSOBJECT(),SETTRANS()函数在每次调用RETRIEVE(),UPDATE()等函数之后,都要执行数据库的连接和断开操作.2对于数据库服务器来说,表的连接操作是一项非常大的开销,而POWERBUILDER提供的下拉例如,为了在数据窗口上显示用户的和:如果用表的连接的方法,数据窗口对应的SQL语句应是这样的:SELECT"DA_DH"."DHHM","DA_HTH"."DWM"FROM"DA_HTH","DA_DH"WHERE同样的程序可用下拉数据窗口来完成,这里不再具体介绍.但是,应当注意,以上两种方法究竟哪一种数据更快,与表的结构,表的数量,连接的方法等均有关系,应当具体分析.3在一个应用程序中,某些数据需要频繁的使用,索,则需占用大量的服务器资源和网络资源.为了减少开销,可以在客户端对这些数据只进行一次检索,然后允许其它任务共享这些数据.例如,如果有两个数据窗口,都需要从第表中检索出用户的,且此列用下拉数据窗口给出.如果每次都对进行检索,则性能较低.因此,可以单独建立一个关于的数据窗口.在每次打开窗口时,首先将检索到此数据窗口中,然后另外两个数据窗口中关于的下拉数据窗口可以共享此数据窗口中的数据.在窗口的OPEN中编写如下程序//检索dw_1//使DW_2的下拉数据窗口共享DW_1datawindowchildchild1//使DW_2的下拉数据窗口共享DW_1datawindowchildchild2使用这种方法,避免了各个数据窗口间物理的拷贝数据,因此减少了空间上的开销,提高了应用程4如果需要在数据窗口间共享数据,应当尽量使用SHAREDATA()函数,但是()函数并不是物理地在数据窗口间拷贝数据,如工在显示数据的同时,还要对数据进行操作,则需例如,要求将DW_1中选定的行拷贝到DW_2在窗口的OPEN中编程:在数据窗口DW_1的ROWFOCUSCHANGED中编写下列程序:longlr===要完成从DW_1到DW_2的拷贝工作,第一种:在按钮"拷贝"的CLICKED中编longlr=dw_1.getselectedrow(0)执行程序,利用POWERBUILDERPROFILER得出所需时间为1.7034(第二种:在按钮"拷贝"的CLICKED中编dw_2.object.data=执行程序,利用POWERBUILDERPROFILER得出所需时间为0.8062(百分之一秒)AA2、应用多个独立的DESCRIBE()A3、只使用一个DESCRIBE()函数,采用复合参数多个属性上面三中方法,通常第法最慢,第三种方法最快.在窗口的OPEN第法在检索按钮的CLICKED中编程stringdx,dy,dh,dwdx=dw_1.object.da_dh.xdy=dx=dw_1.object.da_dh.heightdy=dw_1.object.da_dh.widthst_1.textstringdx,dy,dh,dwst_1.textstringdx,dy,dh,st_1.text=dw_1.describe("da_dh.x"+"a_dh.y"+"da_dh.height"+实验证明,第三种方法的速度是最快的.但是程序的可读性B.A1.A2.应用多个独立的MODIFY()A3.只使用一个MODIFY()函数,采用复合参数多个属性上面三中方法,通常第法最慢,第三种方法最快.在窗口的OPEN第法在检索按钮的CLICKED中编程dw_1.object.da_dh.x=dw_1.object.da_dh.y=dw_1.object.da_dh.height=dw_1.object.da_dh.width=200st_1.textdw_1.modify("da_dh.x=dw_1.modify("da_dh.y=dw_1.modify("da_dh.height=dw_1.modify("da_dh.width=200")dw_1.modify("da_dh.x=18"+"da_dh.y=16"+"da_dh.height=100"+实验证明,第三种方法的速度是最快的.但是程序的可读性注意,在方法一和方法二中,都使用的setredraw()函数以减少屏幕的重绘,否则,执行速6在程序中,经常会需要动态的修改数据窗口中的数据.对此,PB提供了多种方法,各种方A目的:将数据窗口中的存放在一个数组中.stringda_dh[]longll,ill=fori=llto1stet-da_dh[i]=dw_1.getitemstring(i,"dhhm")stringda_dh[]=测试发现,第二种方法比第法快倍.数据量越大这种差异越明显B目的:修改数据窗口中的列的值.dw_1.[i]=测试发现,第二种方法比第法快倍.数据量越大这种差异越明显7、数据窗口对性能的影对于数据窗口控制中经常发生的,应当尽量减少其中的程序代码.特别是如下:a、itemchangedb、c、itemfocuschangedd、pbm_dwnkeye、rowfocuschangedf、retrieverow在这些中的任何处理程序,都会降低应用程序的处理速度.所以应当尽量减少这些中的处理程序,必要时,可以考虑只将重要的代码放在这些中,而将剩余的代码放在一个传递的事例如,如果需要用到数据窗口的ROWFOCUSCHANGED,可以为数据窗口定义一用户" 而在数据窗口的ROWFOCUSCHANGED中写如下代码:在UE_RE中再编写相应的程序代码,如stringcodecode=getitemstring(dw_1,rownum,"dhhm")另外,为了获得当前行号,应尽量使用数据窗口的CURRENT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 时间的脚印课件王晶
- 教务主任期中质量分析
- 护理常规培训内容
- 时钟造型基础知识培训课件
- 二零二五版房屋地基下沉修复赔偿合同
- 2025版出轨离婚赔偿金协议书(含法律咨询与执行)
- 二零二五年度房地产开发项目贷款合同范本正规范本
- 旭东化学课件获取
- 二零二五年度动产抵押消费贷款合同编写指南
- 高三试卷:四川省雅安市2024-2025学年高三上学期11月零诊试题数学答案
- 2025年海南省警务辅助人员招聘考试(公共基础知识)历年参考题库含答案详解(5套)
- 城市道路清扫保洁协议
- 2025年医学检验在编考试题库
- 2025年十八项医疗核心制度试题及答案
- 特色食品卖场建设方案(3篇)
- 2025年四川省高考化学试卷真题
- 高考3500词汇表(完整版)
- 《建筑施工安全检查标准》JGJ59-20248
- 1931CIE标准色度三刺激值
- 万玮:《班主任兵法》
- 2MCL458离心式压缩机使用说明书
评论
0/150
提交评论