SlideShare a Scribd company logo
1 of 15
PRO TECHNIQUES
for the SSAS MD Developer
AGENDA
Show of Hands!
Custom Assemblies
UnitTesting
Synchronization
Processing Partitions
SHOW OF HANDS
 How many uses SSASMD?
 Uppers n’ Downers?
 Contact: jv@t-sql.dk
 Twitter: @vestergaardj
 Blog: http://www.t-sql.dk
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
DEMO
Custom Assembly
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)
DEMO
UnitTesting
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.
DEMO
Synchronization
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.
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.
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!
DEMO
PARTITIONING
QUESTIONS
RESOURCES
 JensVestergaard – Custom Assemblies:
 http://t-sql.dk/?p=1383
 Henk van derValk – Processing Optimization:
 http://henkvandervalk.com/how-to-process-a-ssas-molap-cube-as-fast-as-possible-
part-1
 JensVestergaard – Cube Synchronization
 http://t-sql.dk/?p=1403
 Microsoft – UnitTesting
 https://blogs.msdn.microsoft.com/visualstudioalm/tag/unit-testing/

More Related Content

What's hot

Ssis Best Practices Israel Bi U Ser Group Itay Braun
Ssis Best Practices   Israel Bi U Ser Group   Itay BraunSsis Best Practices   Israel Bi U Ser Group   Itay Braun
Ssis Best Practices Israel Bi U Ser Group Itay Braun
sqlserver.co.il
 
Speed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and SpeedmentSpeed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and Speedment
Hazelcast
 
Desired state-configuration-ravikanth-august-2013-vtc india
Desired state-configuration-ravikanth-august-2013-vtc indiaDesired state-configuration-ravikanth-august-2013-vtc india
Desired state-configuration-ravikanth-august-2013-vtc india
Ravikanth Chaganti
 
Module Owb External Execution
Module Owb External ExecutionModule Owb External Execution
Module Owb External Execution
Nicholas Goodman
 

What's hot (20)

Ssis Best Practices Israel Bi U Ser Group Itay Braun
Ssis Best Practices   Israel Bi U Ser Group   Itay BraunSsis Best Practices   Israel Bi U Ser Group   Itay Braun
Ssis Best Practices Israel Bi U Ser Group Itay Braun
 
Sql server 2016 it just runs faster sql bits 2017 edition
Sql server 2016 it just runs faster   sql bits 2017 editionSql server 2016 it just runs faster   sql bits 2017 edition
Sql server 2016 it just runs faster sql bits 2017 edition
 
SQL Server Optimization Checklist
SQL Server Optimization ChecklistSQL Server Optimization Checklist
SQL Server Optimization Checklist
 
MySQL infra readiness-for-peak-sale-events - Kabilesh PR (Co-Founder of Mydbops)
MySQL infra readiness-for-peak-sale-events - Kabilesh PR (Co-Founder of Mydbops)MySQL infra readiness-for-peak-sale-events - Kabilesh PR (Co-Founder of Mydbops)
MySQL infra readiness-for-peak-sale-events - Kabilesh PR (Co-Founder of Mydbops)
 
Scaling asp.net websites to millions of users
Scaling asp.net websites to millions of usersScaling asp.net websites to millions of users
Scaling asp.net websites to millions of users
 
Evolution of MongoDB Replicaset and Its Best Practices
Evolution of MongoDB Replicaset and Its Best PracticesEvolution of MongoDB Replicaset and Its Best Practices
Evolution of MongoDB Replicaset and Its Best Practices
 
Query Optimization in SQL Server
Query Optimization in SQL ServerQuery Optimization in SQL Server
Query Optimization in SQL Server
 
SQL Query Optimization: Why Is It So Hard to Get Right?
SQL Query Optimization: Why Is It So Hard to Get Right?SQL Query Optimization: Why Is It So Hard to Get Right?
SQL Query Optimization: Why Is It So Hard to Get Right?
 
Speed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and SpeedmentSpeed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and Speedment
 
Desired state-configuration-ravikanth-august-2013-vtc india
Desired state-configuration-ravikanth-august-2013-vtc indiaDesired state-configuration-ravikanth-august-2013-vtc india
Desired state-configuration-ravikanth-august-2013-vtc india
 
Module Owb External Execution
Module Owb External ExecutionModule Owb External Execution
Module Owb External Execution
 
Brk3288 sql server v.next with support on linux, windows and containers was...
Brk3288 sql server v.next with support on linux, windows and containers   was...Brk3288 sql server v.next with support on linux, windows and containers   was...
Brk3288 sql server v.next with support on linux, windows and containers was...
 
Lessons Learned While Scaling Elasticsearch at Vinted
Lessons Learned While Scaling Elasticsearch at VintedLessons Learned While Scaling Elasticsearch at Vinted
Lessons Learned While Scaling Elasticsearch at Vinted
 
Inside sql server in memory oltp sql sat nyc 2017
Inside sql server in memory oltp sql sat nyc 2017Inside sql server in memory oltp sql sat nyc 2017
Inside sql server in memory oltp sql sat nyc 2017
 
PostgreSQL Hangout Replication Features v9.4
PostgreSQL Hangout Replication Features v9.4PostgreSQL Hangout Replication Features v9.4
PostgreSQL Hangout Replication Features v9.4
 
Architecture of exadata database machine – Part II
Architecture of exadata database machine – Part IIArchitecture of exadata database machine – Part II
Architecture of exadata database machine – Part II
 
Streaming replication in PostgreSQL
Streaming replication in PostgreSQLStreaming replication in PostgreSQL
Streaming replication in PostgreSQL
 
Columnstore Customer Stories 2016 by Sunil Agarwal
Columnstore Customer Stories 2016 by Sunil AgarwalColumnstore Customer Stories 2016 by Sunil Agarwal
Columnstore Customer Stories 2016 by Sunil Agarwal
 
Cassandra Summit 2015: Intro to DSE Search
Cassandra Summit 2015: Intro to DSE SearchCassandra Summit 2015: Intro to DSE Search
Cassandra Summit 2015: Intro to DSE Search
 
Mysql For Developers
Mysql For DevelopersMysql For Developers
Mysql For Developers
 

Similar to Pro Techniques for the SSAS MD Developer

1 extreme performance - part i
1   extreme performance - part i1   extreme performance - part i
1 extreme performance - part i
sqlserver.co.il
 
Tuning Biz Talk Server 2009 For Better Performance
Tuning Biz Talk Server 2009 For Better PerformanceTuning Biz Talk Server 2009 For Better Performance
Tuning Biz Talk Server 2009 For Better Performance
rsnarayanan
 
Tuning Biz Talk Server 2009 For Better Performance
Tuning Biz Talk Server 2009 For Better PerformanceTuning Biz Talk Server 2009 For Better Performance
Tuning Biz Talk Server 2009 For Better Performance
rsnarayanan
 
Maruthi_YH_resume
Maruthi_YH_resumeMaruthi_YH_resume
Maruthi_YH_resume
Maruthi YH
 
Managing SQLserver for the reluctant DBA
Managing SQLserver for the reluctant DBAManaging SQLserver for the reluctant DBA
Managing SQLserver for the reluctant DBA
Concentrated Technology
 

Similar to Pro Techniques for the SSAS MD Developer (20)

SQL Server 2008 Integration Services
SQL Server 2008 Integration ServicesSQL Server 2008 Integration Services
SQL Server 2008 Integration Services
 
SQL Server - High availability
SQL Server - High availabilitySQL Server - High availability
SQL Server - High availability
 
1 extreme performance - part i
1   extreme performance - part i1   extreme performance - part i
1 extreme performance - part i
 
Pro Techniques for the SSASMD Developer
Pro Techniques for the SSASMD DeveloperPro Techniques for the SSASMD Developer
Pro Techniques for the SSASMD Developer
 
Microsoft cloud 101
Microsoft cloud 101Microsoft cloud 101
Microsoft cloud 101
 
Novidades do SQL Server 2016
Novidades do SQL Server 2016Novidades do SQL Server 2016
Novidades do SQL Server 2016
 
Tuning Biz Talk Server 2009 For Better Performance
Tuning Biz Talk Server 2009 For Better PerformanceTuning Biz Talk Server 2009 For Better Performance
Tuning Biz Talk Server 2009 For Better Performance
 
Tuning Biz Talk Server 2009 For Better Performance
Tuning Biz Talk Server 2009 For Better PerformanceTuning Biz Talk Server 2009 For Better Performance
Tuning Biz Talk Server 2009 For Better Performance
 
Ms sql server architecture
Ms sql server architectureMs sql server architecture
Ms sql server architecture
 
Building a high-performance data lake analytics engine at Alibaba Cloud with ...
Building a high-performance data lake analytics engine at Alibaba Cloud with ...Building a high-performance data lake analytics engine at Alibaba Cloud with ...
Building a high-performance data lake analytics engine at Alibaba Cloud with ...
 
Midwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL FeaturesMidwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL Features
 
Maruthi_YH_resume
Maruthi_YH_resumeMaruthi_YH_resume
Maruthi_YH_resume
 
Managing SQLserver for the reluctant DBA
Managing SQLserver for the reluctant DBAManaging SQLserver for the reluctant DBA
Managing SQLserver for the reluctant DBA
 
SQL Server 2019 CTP 2.5
SQL Server 2019 CTP 2.5SQL Server 2019 CTP 2.5
SQL Server 2019 CTP 2.5
 
TSQL in SQL Server 2012
TSQL in SQL Server 2012TSQL in SQL Server 2012
TSQL in SQL Server 2012
 
Project seminar
Project seminarProject seminar
Project seminar
 
Sql Server 2008 Enhancements
Sql Server 2008 EnhancementsSql Server 2008 Enhancements
Sql Server 2008 Enhancements
 
Best practices for_large_oracle_apps_r12_implementations
Best practices for_large_oracle_apps_r12_implementationsBest practices for_large_oracle_apps_r12_implementations
Best practices for_large_oracle_apps_r12_implementations
 
Watch Re-runs on your SQL Server with RML Utilities
Watch Re-runs on your SQL Server with RML UtilitiesWatch Re-runs on your SQL Server with RML Utilities
Watch Re-runs on your SQL Server with RML Utilities
 
Designing For Occasionally Connected Apps Slideshare
Designing For Occasionally Connected Apps SlideshareDesigning For Occasionally Connected Apps Slideshare
Designing For Occasionally Connected Apps Slideshare
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Pro Techniques for the SSAS MD Developer

  • 1. PRO TECHNIQUES for the SSAS MD Developer
  • 2. AGENDA Show of Hands! Custom Assemblies UnitTesting Synchronization Processing Partitions
  • 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!
  • 15. RESOURCES  JensVestergaard – Custom Assemblies:  http://t-sql.dk/?p=1383  Henk van derValk – Processing Optimization:  http://henkvandervalk.com/how-to-process-a-ssas-molap-cube-as-fast-as-possible- part-1  JensVestergaard – Cube Synchronization  http://t-sql.dk/?p=1403  Microsoft – UnitTesting  https://blogs.msdn.microsoft.com/visualstudioalm/tag/unit-testing/