[Demos] - CubeProcessingx
Download
Report
Transcript [Demos] - CubeProcessingx
Honest Bob’s Cube Processing
Bob Duffy
Database Architect
Thank you to our sponsors!
Speaker - Bob Duffy
20 years in database sector, 250+ projects
Senior Consultant with Microsoft 2005-2008
One of about 25 MCA for SQL Server globally (aka SQL Ranger)
SQL MCM on SQL 2005 and 2008
SQL Server MVP 2009+
SSAS Maestro
Database Architect at Prodata SQL Centre of Excellence
http://blogs.prodata.ie/author/bob.aspx
[email protected]
What we Will Cover
Processing Internals
Dimensions Deep Dive
Measure Group Deep Dive
Tuning Patterns
Baseline Harness
Case Study
What's a cube ?
Dimension Processing
Build Processing Schedule
Process Dimension
Allocate
Resources
Process Attribute
BuildIndex
Write Data
Attribute
Build Decode Stores (Hierarchies)
Begin
Processing
???
Read Data
Write Decode Stores
Process
Data
Read Data
Execute SQL
Write Data
Wait Time
Read
Buffer 1
Data
Cache 1
Read
Buffer 2
Data
Cache 1
End
Attribute
Processing
Measure Group Processing
Process Cube
Process Measure Group
Process Partition
Write Data
Read Data
Execute SQL
BuildAggsAndIndexes
BuildIndex
Wait Time
Aggregate
MergeAggsOnDisk
Recap: Tuning Attribute Properties
Key Column
Name Column
AttributeHierarchyEnabled
AttributeHierarchyOptimized
AttributeHierarchyOrdered
Add correct relationships
Avoid Large Dimensions
Or
DELETE THEM
Dimension / Fact Structures
Extension
Description
Kstore, Asstore, Ahstore, bStore,
Ahstore
Attribute Stored
Dstore
Hierarchy Decode Store
lStore
Hierarchy Child/Parent Structure
Sstore
Set Store. Ancestors of a level
oStore
Order Store. Contains Position of each level.
Bstore
Blob Store
Map
Bitmap Index
Extension
Description
Fact.data
Raw Fact Data
Map, Hdr
Bitmap index Files
Agg.flex.data
Flexible Aggregations
Aff.Rigid.data
Rigid Aggregations
Determining Size of Objects
http://tinyurl.com/MolapTools
Slow Execute SQL ?
Read Data
1. Check WAIT Statistics
•
What does ASYNC_NETWORK mean ?
2. For Dimensions
•
•
Optimise for Select Distinct
Or Switch “by Table Mode”
3. For Facts
1. Ensure narrow base table (no joins!)
2. Optimise Scan speed
•
•
•
•
512k Read Ahead
Fast Disks
Good File Group Layout
No Extent Fragmentation (-E trace flag)
Execute SQL
Wait
Time
Write Data
Process Data
Review Grain
Increase BufferRecordLimit
Or Aggregate in SQL
Too many Measures ?
Use Calculated Measures
Do we have disk bottleneck
Do we have Network bottleneck
Are we consuming a lot of CPU
Match SSAS to SQL Types
Idle Server Resources
Increase Parallelism
Read Data
Execute SQL
Optimising Bitmap Indexes
1.
2.
3.
4.
5.
Optimise Attributes on Dimensions
Ensure good CPUs !
Ensure max parallelism
Don’t over partition
Will sorting and Compression Help ?
BuildAggsAndIndexes
BuildIndex
Aggregate
Optimising Compression by Sorting
Each Segment in MOLAP is 64k
http://dennyglee.com/2013/09/30/analysis-services-multidimensional-it-is-the-order-of-things/
Optimising Aggregations
Use correct Attribute Relationships
Don’t over aggregate (say 20)
Consider consolidating aggregations
Avoid spilling to disk
Ensure max parallelism
CPU should be saturated!
BuildAggsAndIndexes
BuildIndex
Aggregate
MergeAggsOnDisk
Benchmarking Processing Time
Use XMLA to Process interesting objects
Use XMLA to capture a trace file
Use logman to capture perfmon counters
Disk throughput and latency
CPU
SSAS Threads
Automate with a batch file
http://blogs.prodata.ie/post/capturing-a-service-side-trace-for-mdx.aspx
Analysing the Trace File
http://blogs.prodata.ie/post/Tool-for-baselining-MOLAP-Processing.aspx
ENGINE TUNING TIPS
Connection String
Check Data Source
Try OLEDB driver instead of SqlClient
Max TCP/IP Packet Size set to 32,756
Up default connections from 10
Don’t use TCP/IP on shared server
INI Settings (before 2012)
INI Setting
Impact
OLAP\Process\
AggregationMemoryLimitMin
AggregationMemoryLimitMax
Increase Max if spill to disk
Decrease Min if lots of partitions
ThreadPool\Process\MaxThreads
Increase if maxed out
CoordinatorExecutionMode
Increase Threads per core
BufferMemoryLimit
Improve data grouping
TempDir
Can place on faster disk
See Analysis Services Performance Tuning paper
Case Study – Tuning AW
Size Before
8.8 GB Data, 1.2 GB Index
Size After
8.5 GB, 0.8 GB Index
Case Study II – Retail Cube Baseline
2.5 Hours Starting Point for 350GB cube
Case Study II – Data Types
All Numeric Converted to money or float in sql view.
30% decrease in time for ProcessData
Case Study II – Attribute/Aggs
53% overall reduction in cube size
55% reduction in Aggregations
73% reduction in size of Bitmap Indexes
Processing Time (Hours)
3
2.5
2
1.5
1
0.5
0
Before
After
Case Study II – Tuning the TSQL
Need to denormalise Fact Table
References
Excel Tool for Analysing Process Time
http://tinyurl.com/MolapTools
Excel tool for MOLAP disk space analysis
http://tinyurl.com/MolapDiskSize
Scripts for baselining Cube Processing
http://tinyurl.com/MolapHarness
Your feedback is important!
Please let us know what you thought of this session
http://sqlsaturday.com/414/sessions/sessionevaluation.aspx
Thank You