Press "Enter" to skip to content

Category: Power BI

The Performance Impact of Visual Calculations

Marco Russo and Alberto Ferrari dig into the nuance:

The goal of visual calculations is to simplify some reports and calculations, rather than to optimize performance. However, it is common sense that – in some scenarios – visual calculations can bring some benefit from the performance point of view.

The main idea is that a report may precompute some values and then, to further elaborate on them, it may use the content of the virtual table rather than recompute the values multiple times.

Read on to learn how you can adjudge what that visual calculation is doing for you in terms of performance relative to alternatives. But hey, if you’re stuck with Power BI Report Server, you don’t have to worry about visual calculations potentially slowing anything down. Mostly because you don’t get visual calculations.

Leave a Comment

The Power of PBIP

Ruben Van de Voorde lays out an argument:

The PBIP format is an alternative to PBIX for storing the metadata that defines your semantic model and report. It allows more robust workflows and is far more agent-friendly, while the PBIX binary format packs everything into one file.

In this article, we argue that you should use PBIP format by default, deferring to the PBIX format only when PBIP isn’t an option.

Like when you’re using Power BI Report Server because then you’re not allowed to have nice things.

Leave a Comment

Improving Power BI Performance

James Serra has updated a guide on Power BI performance optimizations:

This post is a complete replacement for and update to my April 2022 post, Power BI Performance Features. That post focused on several performance features that were new or in preview at the time. Four years later, many of those features have matured, Microsoft Fabric has changed the architecture choices available to us, and Direct Lake has become an important part of the conversation. So rather than keep adding notes to an old feature list, I decided to step back and answer the more useful question: How should you design, diagnose, and improve Power BI performance today?

Here’s the bottom line: Power BI performance is not one feature, one setting, or one capacity size. It is the result of a chain that includes the data source, data preparation, storage mode, semantic model, DAX, report design, security, refresh process, and Fabric capacity. A weakness anywhere in that chain can become the bottleneck, which is why randomly changing DAX or buying more capacity often does not solve the real problem. The best approach is to make the right architectural choices first, measure what is slow, and then fix the layer that is actually causing the delay. For more info, see Optimization guide for Power BI.

Click through for James’s guidance.

Leave a Comment

Shrinking Power BI Datasets via Parameter Filtering

Andy Brownsword’s appeal is becoming more selective:

When developing Power BI models, we don’t always want to refresh the entire dataset before we start working with the data. We can speed up the refresh – and therefore our development – by reducing the volume we’re working with.

Here we’ll look at a couple of ways to use parameters to adapt production-ready models to reduce and tailor data volumes for development.

Click through to see how.

Leave a Comment

Making Use of the Tabular Editor CLI

Eugene Meidinger opens up the command line interface:

The Tabular Editor CLI (TE CLI) is a command-line interface that makes it possible to view, query, build, manage, and test semantic models programmatically. This is different from Tabular Editor 2 or 3, which have a graphical user interface (GUI) and buttons that you click to take actions and make changes. In the CLI, you type and submit te <command> like:

  • te connect to connect to a model
  • te ls to list its contents
  • te vertipaq to run the VertiPaq Analyzer
  • te add Sales/Revenue -t Measure -i "SUM('Sales'[Amount])" --save to add a measure

You can also execute these commands in a pre-written script. This typically happens in the terminal. A terminal can be a standalone application that you open (like the default Windows or Mac terminals) or embedded in an application like VS Code or Cursor where you can see files in an explorer:

Click through for more info on how it works. Tabular Editor CLI will be free for another two months (as of the time of this post), so it’s a good time to see if this makes sense for your use cases.

Leave a Comment

Workspace Monitoring in Power BI

Chris Webb monitors Power BI:

This week, in the announcement about support for Fabric Pipelines in Workspace Monitoring, I noticed that it came with an Operations Agent that actively monitors and analyses Pipeline activity. And that got me thinking, since Workspace Monitoring also contains Power BI activity data, why not create an Operations Agent to actively monitor Power BI too?

Read on for a fairly simple demonstration of how it works.

Leave a Comment

Applying Different Formatting Rules at Levels of a Hierarchy

Marco Russo and Alberto Ferrari format things differently:

A challenging requirement in Power BI reports is that of applying different formatting rules based on the level of aggregation. At the year level, the background shade may reflect each year’s share of the grand total. At the quarter level, a status color may indicate whether the quarter is above or below the average. At the month level, the color may flag exceptional values, like months that contribute more than a defined threshold to their year. Each level has its own logic; what the conditional expression of the measure needs to know is which level the current cell belongs to.

Read on to see how you can pull this off.

Leave a Comment

Writing Semantic Model Column and Measure Descriptions

Kurt Buhler shares some thoughts:

In a Power BI semantic model you can set freeform text fields for each object (like tables, columns, and measures) to describe what they do, how to use them, or other information. These descriptions are a convenient and structured way to document each object for developers. They’re also helpful for users, since the descriptions (unlike DAX expressions) show when you hover on the object in Power BI Desktop:

Click through to see what Kurt recommends in terms of items that should go into a description, as well as things that do not belong there. Kurt also has some strong ideas around AI-generated descriptions and what makes a description relatively more useful for a person versus a language model.

Leave a Comment

Direct Lake Mode Benefits in Power BI

Chris Webb lays out the pros:

This is a blog post I’ve been meaning to write for a long time. Since Fabric launched there has been a lot of focus on Direct Lake mode in Power BI and a lot of people used it because it was the cool new thing. Arguably, we at Microsoft have been guilty of telling people to use it because it was the cool new thing without properly explaining what the benefits are of using it. Direct Lake doesn’t completely replace other storage modes: in a recent post I talked about when Import/DirectQuery composite models are the best choice; Marco wrote a good article on Direct Lake vs Import mode which makes the case for the continuing relevance of Import mode for many scenarios. So what are the main benefits of using Direct Lake mode? 

Click through for Chris’s answer.

Leave a Comment

Monitoring the Refresh of a Semantic Model

Reitse Eskens checks the logs:

As you’ve probably heard and read before, monitoring your Fabric environment as a whole is quite important. It really does help to know what’s going on.
Now, one thing I’ve learned over all these years is that report users do quite like their data to be as fresh and up to date as possible. And, when the data seems stale, they tend to ask questions.

Read on for some notes covering how to refresh a semantic model, when you might want to, how to automate it, and how to monitor the refresh process.

Comments closed