Sie sind auf Seite 1von 25

Advanced QlikView

Performance Tuning Techniques

Niklas Boman
Agenda

• Definition of ”Performance Tuning”


• End User Performance
• Measuring Performance
• Influencing Hardware Factors
When is Performance Tuning Necessary?
End User Performance
How to approach a Performance Tuning exercise?

• Reduce QlikView file size


• Improve QlikView file efficiency
• Adjust hardware
What makes up the size of a QlikView document?

• Number of rows
• Number of columns
• Number of distinct values / column
• Data structure
• Number of sheets / sheet objects
Number of Rows

• Is it really necessary to have 10 years of data in the same


QlikView document?
• If there are too many detail rows, is it feasible to create a roll-
up version at a higher aggregate level?
• Applying security authorization to your QlikView document –
to be discussed later in this session
Number of Columns

• Be selective about what fields are included in the QlikView


document
1. Focus on the larger fact tables first
2. But, do not ignore the dimension tables
• Eliminate fields that are not currently being used
1. Do not leave fields that ”might” be used in the future
2. All fields ”might” be used in the future
3. The goal is to have a ”Lean” QlikView document
• Provide the QlikView owner / developer with an efficient
method of adding fields to their data model without having to
manually change the code
Number of distinct values / column

• Fields with highly distinct values use the most space


• Many of them can be eliminated / truncated altogether
1. System keys
2. Timestamps with minutes / seconds
• Others can be transformed by breaking them up into
separate components
1. Phone Numbers
2. Timestamps
Data structure

• Key Fields
• Denormalization vs. Normalization
Normalization vs. Denormalization

• A “traditional” QlikView data structure is most likely not ideal


for a large QlikView document
• “Normalization” Definition (Wikipedia):
1. Normalization splits up data to avoid redundancy (duplication)
by moving commonly repeating groups of data into a new table.
Normalization therefore tends to increase the number of tables
that need to be joined in order to perform a given query, but
reduces the space required to hold the data and the number of
places where it needs to be updated if the data changes.
2. How does this apply to QlikView?
Improving a QlikView document’s efficiency

• Avoid single-threaded processes


• Avoid unnecessary expression complexity
• Other general application design considerations
Avoid single-threaded QlikView processes

• Macros
• “Data Island” Fields vs. Variables
Expression Syntax / Strategy

• Count Distinct
• String Comparisons
• Calculations
1. (CY-LY)/LY vs. CY/LY – 1
• Use Flags
• Target expressions that are frequently repeated
Application Design

• Avoid “Show Frequency”


• Forcing Proper Object Display
1. Calculation Conditions
2. Show Conditional
• Avoid too many active objects on the same sheet
QlikView Security

• QlikView Publisher Security


• Section Access
Publisher Security

• Breaking up one large QlikView file into multiple smaller files


based on row level security
• Effective for memory management if security profiles do NOT
contain much overlapping data
Section Access

• Dynamically reduces the QlikView file at logon based on user


authorization
Measuring Performance
How can I measure response times in QlikView?

• QlikView log files


• User / Selection simulation macro
• Task Manager
1. Sometimes the simplest approach is the best. One way to
identify memory consumption and performance is to use Task
Manager on the server, open an application on the server using
IE and then create more connections to the same application
with IE. Click around and look at the Delta change for memory
and processor utilization.
Influencing Hardware Factors
RAM

• RAM availability is a binary matter


• 75% Rule
• 32 vs 64 QV memory usage (contiguous vs. non-contiguous)
• 10% RAM overhead per additional user estimation
CPU

• Multi-Threading capabilities
• # of Cores vs. # of CPUs
• Intel vs. AMD
Others

• Hyper-Threading
1. No positive impact
2. Could actually have negative impact
• Hard Disc Performance
1. Does impact how long it takes to load the QlikView file from disk
into memory (i.e. initial QVS load)
• Network Capacity
1. Data transfer between the server and the client during QlikView
sessions is minimal so bandwidth is not typically a critical factor
Thank You!

Niklas Boman

Das könnte Ihnen auch gefallen