Documente Academic
Documente Profesional
Documente Cultură
Performance
Pragmatic Works
Agenda
Processing Overview
Tuning Process
Bottlenecks
Bandages
Surgery
www.pragmaticworks.com
About Me
John Welch, SQL Server MVP, SSAS Maestro 2008
Coauthor on
SQL Server MVP Deep Dives
Smart Business Intelligence Solutions with Microsoft SQL
Server 2008
www.pragmaticworks.com
Dimension Processing
Build Attribute
Stores
Build Hierarchy
Stores
Build Decoding
Stores
Build Bitmask
Indexes
www.pragmaticworks.com
Attribute Processing
Country
Region
Income
Gender
City
Customer
www.pragmaticworks.com
Hierarchy Processing
Hierarchy stores accelerate access to
dimension hierarchy members
Hierarchies process in parallel
Ordering members in the hierarchy can
be time consuming
Disable ordering by setting
AttributeHierarchyOrdered = FALSE
MAKING BUSINESS INTELLIGENT
www.pragmaticworks.com
Decoding Stores
Decoding tables enable lookup of IDs for
high level members by the ID for a lower
level member
Unlikely to present performance
bottlenecks
www.pragmaticworks.com
www.pragmaticworks.com
Partition Processing
Process Fact
Data
Build
Aggregations &
Indexes
ProcessData
ProcessIndexes
www.pragmaticworks.com
Process Data
Read Data
Reads from
database
Process Data
Maps data
to Dim IDs
Aggregates
data
Write Data
Sorts data
Compresses
and writes
data
www.pragmaticworks.com
Process Indexes
Creates indexes and aggregations
Loads decoding stores for all attributes
related to granularity attributes
Except for attributes that are NotOptimized
www.pragmaticworks.com
Test and
Evaluate
Remove
Bottleneck
MAKING BUSINESS INTELLIGENT
Measure
Assess
Bottlenecks
www.pragmaticworks.com
Performance Monitor
MSOLAP: Processing
Rows read/sec
Rows written/sec
MSOLAP: Memory
Memory Limit High KB
Memory Limit Low KB
Memory Usage KB
Logical Disk:
MSOLAP: Threads
Processing pool idle threads
Processing pool job queue length
Processing pool busy threads
Process
Processor:
% Processor Time Total
www.pragmaticworks.com
SQL Profiler
SQL
Performance/
Showplan XML Statistics
Profile
TSQL/
SQL:BatchCompleted
Analysis Services
Command Events
Command Begin
Command End
Progress Reports
Progress Report Begin
Progress Report End
Progress Report Error
www.pragmaticworks.com
Tuning
Run Processing in 3 steps
Dimension processing
Partition ProcessData
Partition ProcessIndexes
www.pragmaticworks.com
Warning!
Change one thing at
a time!
Most of these items
involve tradeoffs
Need to understand
impact of each
setting
www.pragmaticworks.com
Processing attributes
Reduce the number of attributes
Add attribute relationships
AttributeHierarchyOptimizedState = Not Optimized
for attributes related to key with high cardinality
Use Member Properties
AttributeHierarchyEnabled = False
MAKING BUSINESS INTELLIGENT
www.pragmaticworks.com
Add Indexes
Use Compression
Add lock hints (TABLOCK)
Add database connections
Surgery
Align relational and analytical partitions 1:1
Update data types
Evaluate database server I/O and network
MAKING BUSINESS INTELLIGENT
www.pragmaticworks.com
Surgery
Increase the number of partitions
MAKING BUSINESS INTELLIGENT
www.pragmaticworks.com
Bandages
Reduce memory usage
Decrease parallelism
Make sure TempDir is pointed to a fast disk
Surgery
Add physical memory
MAKING BUSINESS INTELLIGENT
www.pragmaticworks.com
Increase
OLAP\Process\AggregationMemoryLimitMin
Surgery
Increase partitions
www.pragmaticworks.com
I/O
Disk Queue Lengths, Avg. Reads and
Writes are high
No bandages here
(other than reducing disk contention)
Surgery:
More / faster spindles
Short-stroke the disks
Go solid-state
MAKING BUSINESS INTELLIGENT
www.pragmaticworks.com
Wrap Up
www.pragmaticworks.com
Resources
Analysis Services Performance Guide
http://www.microsoft.com/downloads/en/details.
aspx?FamilyID=3be0488d-e7aa-4078-a050ae39912d2e43&DisplayLang=en
SQLCAT
http://sqlcat.com
My Blog
http://agilebi.com/jwelch
Twitter: @john_welch
MAKING BUSINESS INTELLIGENT
www.pragmaticworks.com