240 likes | 380 Views
Performance Tuning for Informer. PRESENTER: Jason Vorenkamp | support@entrinsik.com | October 11, 2010. Are you on the latest version of informer?. Version 4.1. Version 4.2. Improved Result Rendering. Optional Report Sample. Improved SQL queries. Optimized Auto-suggest.
E N D
Performance Tuning for Informer PRESENTER: Jason Vorenkamp| support@entrinsik.com | October 11, 2010
Are you on the latest version of informer? Version 4.1 Version 4.2 Improved Result Rendering Optional Report Sample Improved SQL queries Optimized Auto-suggest
Database Server Web Server Client Machine Open a Connection Load Results Render the Results Execute the Query Calculations Arranging Data Compute Functions
Do you have the Minimum sysTemrequirements? Client Machine Database Server Web Server 2 GB recommended Disk Space: 500 MB Firefox Pentium 4® or higher Google Chrome
Do you have enough database licenses? Has Informer reached its connection maximum? Database Server Open a Connection
Database Server Do you have enough database licenses? UniData : LISTUSER UniVerse : CONFIG Open a Connection
Database Server Has Informer reached its connection maximum? Open a Connection
Database Server Has Informer reached its connection maximum? Open a Connection
Do you have initialization subroutines? Are you selecting on a virtual field from large dataset? Are you returning a large number of rows? Database Server Execute the Query
Database Server Do you have initialization subroutines? UniData / UniVerse: Consider purchasing a connection pooling license to reduce initialization subroutine overhead. Execute the Query
Database Server 1 MINUTE 10 SECONDS SELECT PERSON WITH AGE = 18 = 1 MINUTE : 10 SECONDS Are you selecting on a virtual field from large dataset? PERSON FILE 60,000 RECORDS 5,000 RECORDS 50 RECORDS Execute the Query SELECT PERSON WITH NAME = “JASON” TOTAL
Database Server 20 SECONDS 2 SECONDS SELECT PERSON WITH NAME = “JASON” = 22 SECONDS Are you selecting on a virtual field from large dataset? PERSON FILE 60,000 RECORDS 500 RECORDS 50 RECORDS Execute the Query SELECT PERSON WITH AGE = 18 TOTAL
Database Server Are you returning a large number of rows? Execute the Query / Loading Results Database Server Web Server Web Server
Do you have calculated columns in your report? What is the nature of the calculated columns? • Does it loop through an iteration? Web Server • Does it check an if-then-else statement? • Does it run a subroutine or function? Calculations
X Web Server Do you have calculated columns in your report? 60,000 RECORDS 10 ITERATIONS Calculations = 600,000 CALCULATIONS!
Is your data Sorted? Are you normalizing on multi-values? Is your data being grouped? Web Server Arranging Data
Web Server Are you subtotaling/averaging groups? Compute Functions
Again, is your data being grouped? Are you displaying all records instead of a paged set? Do you have a large number of columns? Client Machine Rendering the Results
Client Machine Again, is your data being grouped? Group Headers are not shown in pages! 10,000 Groups = 10,000 Items to render! Rendering the Results
Paged: Client Machine Not Paged: Are you displaying all records instead of a paged set? Rendering the Results
Client Machine Do you have a large number of columns? 10,000 Rows x 10 Columns = 100,000 Cells 10,000 Rows x 20 Columns = 200,000 Cells Twice the information, Twice the render time! Rendering the Results