pro techniques for the ssasmd developer

27
Pro Techniques - for the SSASMD Developer 03/12/2016 | SQL Saturday #569 - Prague 2016

Upload: jens-vestergaard

Post on 07-Feb-2017

19 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Pro Techniques for the SSASMD Developer

Pro Techniques

- for the SSASMD Developer

03/12/2016 | SQL Saturday #569 - Prague 2016

Page 2: Pro Techniques for the SSASMD Developer

SQL Saturday #569 - Prague 2016

Thanks to our sponsors!

2 | 03/12/2016 |

Page 3: Pro Techniques for the SSASMD Developer

Agenda

Me Show of Hands! Partitions Synchronization Integration Testing Custom Assemblies PowerShell Deployment – Pointers (if time

permits)

Page 4: Pro Techniques for the SSASMD Developer

ABOUT.ME/JENSVESTERGAARD

Jens Vestergaard CatMan Solution A/S - BI @vestergaardj http://www.t-sql.dk [email protected]

Page 5: Pro Techniques for the SSASMD Developer

Show of Hands

SSASMD? Tabular (on-premises)? Azure Analysis Services?

Uppers n’ Downers Greatest struggles? Greatest wins!

Page 6: Pro Techniques for the SSASMD Developer

SQL Saturday #569 - Prague 2016

PARTITIONING

6 | 03/12/2016 |

Page 7: Pro Techniques for the SSASMD Developer

Partitioning

Symptoms? Processing Query Data Management

Page 8: Pro Techniques for the SSASMD Developer

SQL Saturday #569 - Prague 2016

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 |8 |

Page 9: Pro Techniques for the SSASMD Developer

Partitioning - Processing

ProcessFull; ProcessData; ProcessIndex; ProcessClearIndexes; ProcessAdd; ProcessClear;

ProcessFull =>

ProcessClear, ProcessData, and ProcessIndex.

Page 10: Pro Techniques for the SSASMD Developer

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

Page 11: Pro Techniques for the SSASMD Developer

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

Page 12: Pro Techniques for the SSASMD Developer

SQL Saturday #569 - Prague 2016

Partitioning – Manage Data

Storage Mode per Partition

03/12/2016 |12 |

Page 13: Pro Techniques for the SSASMD Developer

DEMO 1 of 4

PARTITIONING

Page 14: Pro Techniques for the SSASMD Developer

SQL Saturday #569 - Prague 2016

Partitioning – Wrap up

Analysis Services Store Procedure (ASSP) http://asstoredprocedures.codeplex.com/

John Tunnicliffe https://ssaspartitionmanager.codeplex.com/

PowerShell Manual

03/12/2016 |14 |

Page 15: Pro Techniques for the SSASMD Developer

SQL Saturday #569 - Prague 2016

SYNCHRONIZATION

15 | 03/12/2016 |

Page 16: Pro Techniques for the SSASMD Developer

Synchronization

Why? Restore Robocopy Cowboy development

How? Built-in feature

Page 17: Pro Techniques for the SSASMD Developer

SQL Saturday #569 - Prague 2016

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 |17 |

Page 18: Pro Techniques for the SSASMD Developer

DEMO 2 of 4

Synchronization

Page 19: Pro Techniques for the SSASMD Developer

SQL Saturday #569 - Prague 2016

INTEGRATION TESTING

19 | 03/12/2016 |

Page 20: Pro Techniques for the SSASMD Developer

Integration Testing

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 in Visual Studio (Unit Test

Project)

Page 21: Pro Techniques for the SSASMD Developer

DEMO 3 of 4

Integration Testing

Page 22: Pro Techniques for the SSASMD Developer

SQL Saturday #569 - Prague 2016

CUSTOM ASSEMBLIES

22 | 03/12/2016 |

Page 23: Pro Techniques for the SSASMD Developer

Custom Assemblies

When? 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

Page 24: Pro Techniques for the SSASMD Developer

DEMO 4 of 4

Custom Assembly

Page 25: Pro Techniques for the SSASMD Developer

Questions

Page 26: Pro Techniques for the SSASMD Developer

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-cu

be-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-te

sting/ Jens Vestergaard – Integration Testing

http://t-sql.dk/?p=1567

Page 27: Pro Techniques for the SSASMD Developer

SQL Saturday #569 - Prague 201603/12/2016 |27 |

http://bit.ly/2fXGJNQ

We look forward to see you at the next event!http://czechpass.org #CZBISQLPASS

We care about your opinion!Please don't forget to rate this session