Getting the techniques in your tool belt right, makes a world of a difference.
Did you ever wonder, how to deploy a cube, with minimum impact to query performance? Or how to optimize processing performance? Are you really ready to deploy when its required? Or do you get nervous every time?
Attend this session to build and improve your SSAS MD Developer skills, by exploring:
Custom Assemblies - To improve Query Performance
Partitioning - To improve Processing Performance
Unit Testing - To improve Cube Release Quality
Synchronization - To improve End User Experience
3. SHOW OF HANDS
How many uses SSASMD?
Uppers n’ Downers?
Contact: jv@t-sql.dk
Twitter: @vestergaardj
Blog: http://www.t-sql.dk
4. CUSTOM ASSEMBLIES
When?
Text Search in several attributes
Some NonEmpty scenarios (thinkT-SQL INNER JOIN)
How?
C#/VB.NETAssembly integrated with Analysis Services
DebugView (SysInternals)
What?
Show me the Money!
Noteable: Security
6. UNITTESTING
Benefits
Keep from seeing the same bug over and over again
Make sure you don’t break anything else
Check for performance degradation
How?
C#/VB.Net code inVisual Studio (UnitTest Project)
8. SYNCHRONIZATION
Why?
Restore
Robocopy
Cowboy development
How?
Built-in feature
What
User must be a member of the Analysis Services server administrator role on the Target server.
User must have Full Control permissions on the Source database.
TCP port 2383 must be open on both servers to allow remote connections between default instances.
Both the Source and Target server must be the same version.
Edition needs to be either Enterprise, Developer, or Business Intelligence.
Server mode must be identical on the two, eitherTabular/Tabular or
Multidimensional/Multidimensional.
10. PROCESSING PARTITIONS - 1/3
Why?
Processing time
What?
Read -> Process ->Write
BufferRecordLimit (default: 1024 x 1024)
DISTINCT_COUNT (64K buffer, due to sorting)
Processing Speed
INT or DECIMAL,Yes! Floating Points, No!
Increase the amount of memory available for Analysis Services during processing of partitions.
Process fewer partitions in parallel.
Define smaller partitions.
We recommend a partition size containing between 5 and 20 million records.
Design fewer aggregations for your partition.
11. PROCESSING PARTITIONS – 2/3
ProcessFull; deletes existing partition data, indexes, and aggregations and fully
reprocesses a partition.
ProcessData; deletes existing partition data, indexes, and aggregations and loads
only data in a partition.
ProcessIndex; builds indexes and aggregations for a partition.
ProcessClearIndexes; deletes partition indexes and aggregations.
ProcessAdd; incrementally updates a partition by adding new data to it.
ProcessClear; deletes partition data, indexes, and aggregations.
ProcessFull => ProcessClear, ProcessData, and ProcessIndex.
12. PROCESSING PARTITIONS – 3/3
Partition Processing Load Speed (Rows Read/Sec)
2008: 50K OK, 100K Optimized
2016: 100 OK, 150K Optimized
OLE DB for SQL Server over Native Client
Increase the network Packet Size from 4096 bytes to 32 Kbyte (32767).
JumboFrames
Enter the Bios Power options menu and see if you can disable settings like
‘Processor Power Idle state’.
In theWindows Control Panel, set the Server Power Plan to max. throughput
Show me the Money!