Comparison and testing of computing performance between rundry reports and set computing reports

Source: Internet
Author: User

1. Purpose

Test the performance of the rundry report and set computing Report on the same hardware and Web Container, and compare the performance differences in grouping, sorting, filtering, connection, and ranking in the report, and concurrency. During the test, the rundry report uses the built-in computing engine of the report tool, and the Set Computing report uses its built-in set computing engine.


2. Environment Description

Test Model: Dellinspiron 3420

CPU: Intel Core [email protected] * 4

Ram: 4G

HDD: West digital WDC (500g5400 rpm)

Operating System: Win7 (x64) SP1

JDK1.6

Database:Oracle11gr2

Tomcat:6.0.36 _ x64

TomcatjvmMemory:Xms512m-Xmx2048m

Rundry report version: 4.5.6

Report version5.0

3. Data Description

The test uses three tables T1, T2, and T3. The following table shows the information of the three tables, where the data volume is the number of records.

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M02/44/19/wKiom1PfNvLhdrimAABeYAl9fIo158.jpg "style =" float: none; "Title =" jisuan_report_1.jpg "alt =" wkiom1pfnvlhdrimaabeyal9fio158.jpg "/>

Table T1 and table T2 have the same structure as follows:

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M01/44/19/wKioL1PfOAySwYQoAACBVEIm-LY989.jpg "style =" float: none; "Title =" jisuan_report_2.jpg "alt =" wKioL1PfOAySwYQoAACBVEIm-LY989.jpg "/>

T3 table structure:

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M02/44/19/wKioL1PfOAyRN3SIAABXzKEk7Co067.jpg "style =" float: none; "Title =" jisuan_report_3.jpg "alt =" wkiol1pfoayrn3siaabxzkek7co067.jpg "/>

4. use case description 4.1 groups

Use table T2 to group data by date2 and date respectively in the report, and then group and summarize data by SQL:

Ds1: Select * From T2.

 

Report Format:

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M02/44/19/wKiom1PfNvOhHpHNAABCHTLOZ00595.jpg "style =" float: none; "Title =" jisuan_report_4.jpg "alt =" wkiom1pfnvohhphnaabchtloz00595.jpg "/>

4.1.1 statement implementation

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M00/44/19/wKiom1PfNvSi8qoMAABnBwJnCBE925.jpg "style =" float: none; "Title =" jisuan_report_5.jpg "alt =" wkiom1pfnvsi8qomaabnbwjncbe925.jpg "/>

4.1.2 set computing report implementation

Set calculator script

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M00/44/19/wKioL1PfOA6T3bNvAADRBD4nstI953.jpg "style =" float: none; "Title =" jisuan_report_6.jpg "alt =" wkiol1pfoa6t3bnvaadrbd4nsti953.jpg "/>

Report Template

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M00/44/19/wKiom1PfNvXifjbbAAB3Po7Ppuw035.jpg "style =" float: none; "Title =" jisuan_report_7.jpg "alt =" wkiom1pfnvxifjbbaab3po7ppuw035.jpg "/>

4.2 sorting

UseT1Table, take 0.5 million records, sort the report by date field, the report shows 5 fields, take the number of SQL:

Ds1: Select * from T1 where rownum <500000.

 

Report Format:

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M01/44/19/wKioL1PfOA-SFyPrAABmC_G3uw4369.jpg "style =" float: none; "Title =" jisuan_report_8.jpg "alt =" wKioL1PfOA-SFyPrAABmC_G3uw4369.jpg "/>

4.2.1 statement implementation

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M02/44/19/wKioL1PfOA_Dk0uhAABlnzLtDU8346.jpg "style =" float: none; "Title =" jisuan_report_9.jpg "alt =" wkiol1pfoa_dk0uhaablnzltdu8346.jpg "/>

4.2.2 set computing report implementation

Set the compute script:

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M01/44/19/wKiom1PfNvbCo4HYAACq24BdbNs265.jpg "style =" float: none; "Title =" jisuan_report_10.jpg "alt =" wkiom1pfnvbco4hyaacq24bdbns265.jpg "/>

Report Template:

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M01/44/1A/wKioL1PfORDRg8kvAABW3qax5UY155.jpg "style =" float: none; "Title =" jisuan_report_11.jpg "alt =" wkiol1pfordrg8kvaabw3qax5uy155.jpg "/>

4.3 Filter

UseT1Table, which is filtered by the ID field in the report. After filtering, the data volume is 82. Fetch SQL:

Ds1: Select * From T1.

 

Report Format:

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M01/44/1A/wKioL1PfORHySl_VAABdiZWqg3o390.jpg "style =" float: none; "Title =" jisuan_report_12.jpg "alt =" wkiol1pforhysl_vaabdizwqg3o390.jpg "/>

4.3.1 statement implementation

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M00/44/19/wKiom1PfN_jBY7FLAABfXP5qXAw692.jpg "style =" float: none; "Title =" jisuan_report_13.jpg "alt =" wkiom1pfn_jby7flaabfxp5qxaw692.jpg "/>

4.3.2 set computing report implementation

Set calculator script

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M01/44/19/wKiom1PfN_jBeAsPAACXUYC0xJk675.jpg "style =" float: none; "Title =" jisuan_report_14.jpg "alt =" wkiom1pfn_jbeaspaacxuyc0xjk675.jpg "/>

Report Template:

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M02/44/1A/wKioL1PfORLBRHo1AABg3XSlcTE798.jpg "style =" float: none; "Title =" jisuan_report_15.jpg "alt =" wkiol1pforlbrho1aabg3425cte798.jpg "/>

4.4 connection

Use table T2 and table T3 to connect to table T3 Based on the ID field T2 in the report:

Ds1: Select * From T2 where userid <267427523

DS2: Select * from T3 where userid <10485202

Ds1 records: 7171; DS2 records: 12730

Report Format:

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M01/44/19/wKiom1PfN_nQcT5TAAA-iu6PYRE106.jpg "style =" float: none; "Title =" jisuan_report_16.jpg "alt =" wKiom1PfN_nQcT5TAAA-iu6PYRE106.jpg "/>

4.4.1 statement implementation

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M02/44/1A/wKioL1PfORLR931RAABZNu-8a1g854.jpg "style =" float: none; "Title =" jisuan_report_17.jpg "alt =" wKioL1PfORLR931RAABZNu-8a1g854.jpg "/>

4.4.2 set computing report implementation

Set the compute script:

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M00/44/1A/wKioL1PfORPSTyn8AAESKiZHbsM133.jpg "style =" float: none; "Title =" jisuan_report_18.jpg "alt =" wkiol1pforpstyn8aaeskizhbsm133.jpg "/>

Report Template:

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M02/44/19/wKiom1PfN_rSgu7CAABAwIs_b34408.jpg "style =" float: none; "Title =" jisuan_report_19.jpg "alt =" wkiom1pfn_rsgu7caabawis_b34408.jpg "/>

4.5 ranking

Use the T3 table to rank the table in the report based on the sumtime. The SQL statement is as follows:

Ds1: Select * from T3 whereuserid <8883948

The number of records in the dataset ds1 is 10430.

 

Report Format:

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M01/44/1A/wKioL1PfORTjXimEAABPdpzoWco011.jpg "style =" float: none; "Title =" jisuan_report_0000jpg "alt =" wkiol1pfortjximeaabpdpzowco011.jpg "/>

4.5.1 statement implementation

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M00/44/1A/wKiom1PfOZfS0sYTAACAhwwwEDg384.jpg "style =" float: none; "Title =" jisuan_report_21.jpg "alt =" wkiom1pfozfs0sytaacahwwwedg384.jpg "/>

4.5.2 set computing report implementation

Set the compute script:

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M02/44/1B/wKioL1PfOrKRHy0wAAE6EO28oX8124.jpg "style =" float: none; "Title =" jisuan_report_22.jpg "alt =" wkiol1pforkrhy0waae6eo28ox8124.jpg "/>

Report Template:

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M01/44/1A/wKiom1PfOZmTVBqBAABxj0WOPFE802.jpg "style =" float: none; "Title =" jisuan_report_23.jpg "alt =" wkiom1pfozmtvbqbaabxj0wopfe802.jpg "/>

4.6 concurrent groups

Use the 5.1 grouping case to perform multi-concurrency grouping tests. Here Four concurrency tests are used.

5. Test Method

Deploy the rundry report application and the centralized computing report application using two identical Tomcat (such as JVM). The report data sources are the same. The rundry report uses the SQL dataset to retrieve the data directly; A set computing report uses a set of datasets, and the number is completed in DFX. Compare the performance of reports such as grouping and sorting completed in the report. Restart Tomcat before each test case to ensure that no other reports occupy memory and other resources.

In addition, due to the configuration of the test machine, different data tables are used in different use cases. Therefore, different use cases are not vertically comparable. The main difference is horizontal, that is, the performance difference between the rundry report and the centralized report.

6. Test Results

* The following table shows the data unit: seconds.

650) This. width = 650; "src =" http://s3.51cto.com/wyfs02/M02/44/1B/wKioL1PfOrOTfb6ZAAGKo0YN90U058.jpg "style =" float: none; "Title =" jisuan_report_24.jpg "alt =" wkiol1pforotfb6zaagko0yn90u058.jpg "/>


[Description]

Here, the time record is counted from the SQL query to the report calculation. The two time points are directly provided in the logs of the dry report, and the time interval is reduced; in a set computing report, you need to add the debug information in the script to record the time when the number is obtained, and then compare it with the time when the report is calculated in the report log.

7. interpretation and analysis

A set computing report stores computing in the Set Computing script. The set computing tool uses a more efficient hash algorithm, which greatly improves the computing of Data associations such as grouping, hard traversal computation, such as filtering and sorting, is not significantly improved at the algorithm level. A small amount of improvement is manifested mainly because the computation in the Set calculator does not carry the display attribute.

All the operations in this test are single-threaded. In fact, the cube can also support multi-threaded parallel computing to fully utilize the CPU's multiple cores, further improving performance, even in sorting and filtering operations, it can be improved several times. Most reporting tools, including rundry reports, currently do not support multi-thread parallel computing and cannot use multiple CPU cores to improve performance.






Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.