Performance Tuning Successful Case

Case 1: BlueQuery 推出超高速ETL引擎 (2006年1月4日)

随着商业智能进入企业市场,国内外商业智能厂商也将面临极大的压力,主要是因为怎样高效建立数据仓库,并保障海量、高性能的数据抽取与加载。

Sunnet自2002年底完成通用ETL引擎支持Oracle、SQL Server、Informix、DB2、Sybase、Progress等等各种关系型数据库后,又耗时3年的研发时间开发了代号为"BlueQuery - P" 超高速ETL引擎,并于2006年1月份宣布正式推出市场!

Sunnet研发"BlueQuery - P"的超高速ETL引擎现只支持Oracle与SQL Server,对Oracle、SQL Server抽取与加载测试指标为100万行含18个各种类型字段的数据,比Microsoft DTS 速度快12倍以上。

在2006年Sunnet将陆续推出支持DB2、Informix、Sybase和Progress数据库的超高速ETL引擎。



(
性能测试案例)
2005-12-27

Case 2: BlueQuery 在后台循环取数比Oracle JDBC快8倍以上 (2006年6月9日)

BlueQuery(BQ)的前端取数是非常快的(对于Oracle,如果使用BQ后台,25个字段包含中文等各种类型信息的查询,每分钟可返回25 ~ 35万行),但在ABC国际企业数据系统中目前在Desktop中运行是通过BQ服务器取数,在Web上则是通过IBM WebSphere的Java数据库引擎取数。我们于2006年6月做过测试,在后台循环取数,BQ的DB Driver比Oracle JDBC快8倍以上,如果使用BQ Native Driver for Oracle(通过OCI开发 )将更快。

Case 3: BlueQuery 利用海量数据技术在查询同一个SQL Server报表比旧速度提升近1,000倍以上 (2006年9月9日)


用BlueQuery(BQ)做某大型ERP报表能带来多方面好处,因为利用BQ海量数据技术的数据转换恰当使用,大大提高性能,原理是:减少表关联、通过代码Group By、充分利用索引、不用case…when 。

之前
之后

 

 

Case 4: BlueQuery 速度突破,超快.超乎想象(2006年12月26日)

在2006年12月采用全新的高速计算缓冲技术,减少每次运算解析表达式的时间,由原来在固定报表计算域运算一张报表需要用24秒成功减省到少于2秒便能完成运算。

此成功高速计算缓冲技术,已为客户探索、发掘一个快速的BI解决方案,让您的事业快速增长提供更多机遇。

Case 5: BlueQuery 基于多维数据库做传统统计报表,海量数据统计性能将提高数十倍甚至过百倍(2007年3月27日)

测试案例:三表关联按地区、类型统计,三表数据量(记录数)分别是6,000万、4,000万、60万,原来的统计时间为20分钟,使用多维后不超过10秒!

特性:
1) 以与关系型数据库相同的模式访问多维数据库,修改语义层定义后,原基于关系数据库的统计报表稍加修改甚至不修改,即可方便地转为多维模式
2) 扩展Microsoft SQL Server 2000多维数据库访问语言MDX(Multidimensional Expressions),实现多维数据库的IN和BETWEEN条件操作符运算
3) 对于日期时间条件,可根据输入内容自动调整时间维及其级别的条件表达式,从而在一张报表实现高速的年报、季报、月报、日报等,如:
输入:2007 表示:统计2007年的数据
输入:200701 表示:统计2007年1月份的数据
输入:2007Q1 表示:统计2007年1季度的数据
输入:20070101 表示:统计2007年1月1日的数据
输入:20070101 ~ 20070205 表示:统计2007年1月1日至2007年2月5日的数据

暂支持Microsoft SQL Server 2000多维数据库,其它Oracle多维数据库,DB2多维数据库会快将推出...

Case 6: 高速比对数据功能(2007年12月10日)

前言:

近日多间SI公司致电Sunnet关心系统性能优化问题,大家都有同样的错误观念,以为只有TB数据才会速度慢,正如以下小量数据例子,半个小时内查不了1万行数据。究竟为什么呢?我们又是怎样解决?

实例:

某集成商,因业务需要,要比对与寻找数据,用户定期得到主动数据(主动数据的格式为XML文件,一个XML文件即是一个批次的主动数据,一个批次主动数据中记录了大量的人员详细信息,每一批主动数据的数据量在100至2,000条不等),根据数据比对的规则(用户能灵活定制规则),将主动数据中的人员信息与被动数据(被动数据的格式为ACCESS数据源,被动数据同样记录了大量的人员信息,同时被动数据按照业务处进行划分,每个业务处有自己的被动数据库,每一个业务处的被动数据的数据量在1万至20万不等)中的人员信息进行比对,并且将比中的结果进行记录,反馈给用户,用户可以对比中结果、比对的规则、比对对应的被动数据进行查询。

问題在于搜索性能太慢: 以100条主动数据在1万条被动数据中比对的情况为例,精确比对响应时间超于25分钟,模糊比对响应时间超于2个小时。最终用户怎能等待超过半个小时的查询。

过程与挑战: 为提高搜索速度,我们采用了快速的字符串搜索算法Boyer-Moore(BM算法),其与线性搜索的区别是当发现模式不匹配时,不是象线性搜索那样只移动一个字节,而是尽可能多地移动多个字节长度,以提高搜索速度。但采用了BM算法速度也不能接受,为进一步提速,我们采用了创新研发的混合核心算法,进一步提升3~5倍BM算法速度。

成功的结果: 我们只花了两周时间采用了混合核心算法,在网络环境(千兆)下,以100条主动数据在1万条被动数据中比对的情况为例,精确比对响应时间小于1分40秒快原系统15倍以上,模糊比对响应时间小于5分钟快原系统25倍以上

为配合用户,我们在本公司BlueQuery商业智能产品中,新增如下超速搜索功能:

1. 快速数据精确查询功能SunDataset.QuickFindRow(nCol, varFindValue) - 在千万行数据中找某个值,都不会超过0.001秒。

2. 模糊查找指定值SunDataset.FindLike(nCol, szFindWhat, nStartRow, nDirection, bCaseSensitive)

3. 多列联合快速查找准备按多列快速查找:SunDataset.PrepareRapidFind(VARIANT varColumns, short cSplitter)

此计划,进一步提升BlueQuery商业智能产品的搜索功能。

(广州尚南科技有限公司/新闻中心) ______________________________________