- for the SSASMD Developer Pro Techniques - for the SSASMD Developer 03/12/2016 | SQL Saturday #569 - Prague 2016
Thanks to our sponsors! 03/12/2016 | SQL Saturday #569 - Prague 2016
Agenda Me Show of Hands! Partitions Synchronization Integration Testing Custom Assemblies PowerShell Deployment – Pointers (if time permits)
ABOUT.ME/JENSVESTERGAARD CatMan Solution A/S - BI @vestergaardj http://www.t-sql.dk jv@t-sql.dk
Show of Hands SSASMD? Uppers n’ Downers Tabular (on-premises)? Azure Analysis Services? Uppers n’ Downers Greatest struggles? Greatest wins!
PARTITIONING 03/12/2016 | SQL Saturday #569 - Prague 2016
Partitioning Symptoms? Processing Query Data Management
Partitioning - Processing What to do? Read -> Process -> Write 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. Recommendation: a partition size containing between 5 and 20 million records. Design fewer aggregations for your partition. 03/12/2016 | SQL Saturday #569 - Prague 2016
Partitioning - Processing ProcessFull; ProcessData; ProcessIndex; ProcessClearIndexes; ProcessAdd; ProcessClear; ProcessFull => ProcessClear, ProcessData, and ProcessIndex. Full: deletes existing partition data, indexes, and aggregations and fully reprocesses a partition. Data: deletes existing partition data, indexes, and aggregations and loads only data in a partition. Index: builds indexes and aggregations for a partition. ClearIndexes: deletes partition indexes and aggregations. Add: incrementally updates a partition by adding new data to it. Clear: deletes partition data, indexes, and aggregations.
Partitioning - Processing 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 – Network setting Enter the Bios Power options menu and see if you can disable settings like ‘Processor Power Idle state’. In the Windows Control Panel, set the Server Power Plan to max. throughput
Partitioning - Query Improve IO Sub System Cube Size > 5 GB Aggregation Design per Partition Sweet spot vs No of Partitions to Manage Test your partition schema
Partitioning – Manage Data Storage Mode per Partition 03/12/2016 | SQL Saturday #569 - Prague 2016
DEMO 1 of 4 PARTITIONING
Partitioning – Wrap up Analysis Services Store Procedure (ASSP) http://asstoredprocedures.codeplex.com/ John Tunnicliffe https://ssaspartitionmanager.codeplex.com/ PowerShell Manual 03/12/2016 | SQL Saturday #569 - Prague 2016
SYNCHRONIZATION 03/12/2016 | SQL Saturday #569 - Prague 2016
Synchronization Why? How? Restore Robocopy Cowboy development Built-in feature
Synchronization 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, either Tabular/Tabular or Multidimensional/Multidimensional. 03/12/2016 | SQL Saturday #569 - Prague 2016
DEMO 2 of 4 Synchronization
Integration TESTING 03/12/2016 | SQL Saturday #569 - Prague 2016
Integration Testing Benefits How? 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 in Visual Studio (Unit Test Project)
DEMO 3 of 4 Integration Testing
CUSTOM ASSEMBLIES 03/12/2016 | SQL Saturday #569 - Prague 2016
Custom Assemblies When? How? What? Noteable: Security High Cardinality Text Search in several attributes Some NonEmpty scenarios (think T-SQL INNER JOIN) How? C#/VB.NET Assembly integrated with Analysis Services DebugView (SysInternals) https://technet.microsoft.com/en-us/sysinternals/debugview.aspx What? Show me the Money! 1.2M Products and we already see a significant difference Noteable: Security
DEMO 4 of 4 Custom Assembly
Questions
RESOURCES Jens Vestergaard – Custom Assemblies: http://t-sql.dk/?p=1383 Henk van der Valk – Processing Optimization: http://henkvandervalk.com/how-to-process-a-ssas-molap-cube-as-fast-as-possible-part-1 Jens Vestergaard – Cube Synchronization http://t-sql.dk/?p=1403 Microsoft – Unit Testing https://blogs.msdn.microsoft.com/visualstudioalm/tag/unit-testing/ Jens Vestergaard – Integration Testing http://t-sql.dk/?p=1567
We care about your opinion! Please don't forget to rate this session http://bit.ly/2fXGJNQ We look forward to see you at the next event! http://czechpass.org #CZBISQLPASS 03/12/2016 | SQL Saturday #569 - Prague 2016