Book Review: Microsoft Power BI Performance Best Practices

Another book that my friends at PackT sent me for review recently was Microsoft Power BI Performance Best Practices by Thomas LeBlanc and Bhavik Merchant.
Over the years, I’ve come across Thomas many times but haven’t had the chance to spend time with him, unlike Bhavik who worked here in Australia quite a bit. They are a good combination to write this book.
Content - Downloads
I like the fact that samples of everything discussed in the book are available. I also like the idea that if you bought the printed book, that you can download a PDF as well.
Content - Topics
I like the way they start by spelling out that Power BI is easy to get started with. It can be deceptively easy. But I see many users then find fitting it into their work patterns more difficult, in particular if they are trying to make it work well in an enterprise.
The focus of this book is on performance. I was pleased to see them start by defining what we mean by “good performance” and discussing how tolerable wait time (TWT) is often measured for web users.
There was a good discussion on the different storage modes for models that Power BI reports on, including Live Connection which is often overlooked, even though we use it daily. It was good to see that the book was sufficiently up to date, as to include Microsoft Fabric related data sources, and a discussion on DirectLake. The book also recognized that some users will be reporting against SQL Server Analysis Services based tabular data models, and has a good discussion on gateway performance.
The book then dives into using Performance Analyzer. This is a fairly good place to start, as it’s important to fix actual (not perceived) problems. I’d normally start by getting into the metrics. I’d rather work out which reports are really being used, and which are having the biggest impact. Fortunately, that is discussed shortly after.
Power BI is constantly changing, and that’s a challenge for any book writer. There have been some recent changes to working with DAX queries in Power BI that it would have been good to include, but optimizing by using Performance Analyzer in combination with DAX Studio is still a completely valid option.
I liked seeing the discussion on configuration for Azure Analysis Services (AAS). We have many clients who use that, even though Microsoft have really dropped the ball on it with the push to get everyone to Fabric, even though using AAS often still makes great sense.
The next major topic covered is optimization of the underlying data model. This is usually where the biggest benefits lie. Telltale signs of a poor model are things like large numbers of bidirectional relationships.
Again, it was good to see a detailed discussion on using Vertipaq Analyzer. That’s such an invaluable tool, particularly if you are trying to optimize the size of your data models.
There is a solid discussion on query folding and on incremental loading, although I do find incremental loading to be far more challenging in reality that what the built-in Power BI support for it covers.
There is content that provides ideas on how to build a solid framework for improvements. That will help a number of readers who might not ever have been exposed to such ideas.
Content - Reports
Towards the end of the book, optimization of report design is covered well. Content on basic dimensional modeling is provided. I have to say that I do it somewhat differently to what is presented, but what’s there is fine.
Content - More Advanced Topics
There is substantial discussion on improving and optimizing DAX. Every time I see a user struggling with complex DAX though, it’s because their data model is poor.
I was pleased to see some discussion on the use of partitions in fact tables. This is an area that could be covered in far more detail, for readers who are looking to enhance performance at scale. But that’s really more of an in-depth tabular model discussion than what you’d expect in a book on optimizing performance for Power BI.
Another area that’s important in our work is scaling when using Azure SQL Database for data warehouses and as data sources. It would be good to have seen that covered as well. It saves our clients a lot of money.
Summary
Overall, love the book. Wide range of topics and covered well.
Well done Thomas and Bhavik !
Recommended! 9 out of 10
2024-10-01