Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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 rollup 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