润乾集算报表利用并行计算提高jdbc取数性能示例

润乾集算报表利用并行计算提高jdbc取数性能示例

ID:34518030

大小:590.86 KB

页数:3页

时间:2019-03-07

润乾集算报表利用并行计算提高jdbc取数性能示例_第1页
润乾集算报表利用并行计算提高jdbc取数性能示例_第2页
润乾集算报表利用并行计算提高jdbc取数性能示例_第3页
资源描述:

《润乾集算报表利用并行计算提高jdbc取数性能示例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、润乾集算报表利用并行计算提高JDBC取数性能示例实际应用中数据量较大的报表在展现或导出时往往需要一次性将数据从数据库中取出来,而JDBC的取数速度过慢使得整个进程效率极低。如何优化取数速度成为了提升报表性能的关键。在润乾集算报表中可以通过并行计算提高JDBC的取数性能。这里以oracle为例通过一个示例说明实现过程。报表描述用户状态表展现的是明细数据,由于需要导出,需要一次性读取数据表中所有数据。单表数据量为360万,报表样式为:实现步骤编写脚本首先使用集算器编写脚本(parallel.dfx),实现并行取数逻辑AB1=connect("wm")2=A1.query("selectmin(us

2、erid)min_idfromt_dw_zx_account_status_day")3=A1.query("selectmax(userid)max_idfromt_dw_zx_account_status_day")4=A1.close()546=A5.(A2.MIN_ID+long((A3.MAX_ID-A2.MIN_ID)/A5)*~)7=A2.MIN_ID

3、A6.to(,A5-1)8forkA7,A69=connect("wm")10=B9.query("select*fromt_dw_zx_account_status_daywhereuserid>=?anduserid<=?",

4、A8(1),A8(2))11=B9.close()12resultB1013=A8.conj()14resultA13A1连接oracle数据源A2-A3分别取userid的最小值和最大值,用于数据分段A4关闭数据库连接A5指定并行线程数,这里指定4线程A6-A7分别计算分段起始和结束参数列表A8通fork使用多线程执行网格中的代码块,实现并行取数B9-B12完成并行取数,每个线程运行结果返回A8格A13合并结果集,并通过A14为报表返回新建报表打开集算报表设计器,菜单栏选择文件-新建报表,点击“生成空白报表”,新建一个空白报表。设置数据集菜单栏选择报表-数据集,数据集类型选择

5、“集算器”,在弹出的集算器数据集设置窗口中选择dfx文件,创建数据集ds1。编辑报表模板及表达式在新建的报表模板中设置报表样式A2:根据数据集ds1使用select函数取用户登录信息列表A2-G2:根据A2扩展,通过取值表达式分别取用户ID、账户、在线等信息并行后效果并行前并行后运行时间57s42s上面看到了并行取数带来的效果,另外,使用多线程并行取数适合数据库资源比较空闲(如连接数未达上线)的情况,通过这种方式充分利用数据库资源。如果数据库任务已经饱和,这种方法会进一步加重数据库负担,而不会起到提高速度的作用。【附】测试机配置测试机型:DellInspiron3420CPU:IntelCor

6、ei5-3210M@2.50GHz*4RAM:4GHDD:西数WDC(500G5400转/分)操作系统:Win7(X64)SP1JDK:1.6数据库:oracle11gR2集算报表版本:5.0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。