Skip to main content

· One min read
Darren Gosbell

Today we are happy to announce the release of version 3.0.11 of DAX Studio which includes the following fix.

Updates

  • Improved Query Folding logic
  • updated vpax libraries
  • fixed #1189 no longer counting RowNumber as user column in vertipaq analyzer

Fixes

  • fixed #1200 "An item with the same key has already been added" error when connecting to Power BI
  • fixed #1188 error when testing roles on SSAS
  • fixed bug in status bar for powerpivot connections
  • fixed #1180 detection of multiple parameters on one line
  • fixed #1178 Query Builder new measure showing permissions issue
  • fixed #1172 vertipaq analyzer summary always shows unknown.pbix
  • fixed #1171 error when loading perf data
  • Fixed Query Folding crashes with certain regional settings
  • fixed #1170 cancelling closing DAX Studio also cancels closing open documents
  • fixed #1169 error when opening files with Query Builder open

· One min read
Darren Gosbell

Today we are happy to announce the release of version 3.0.10 of DAX Studio which includes the following fix.

Fixes

  • Fix crash dialog that appears when connecting or changing tabs when the Indent Based Folding preview feature is NOT enabled

· One min read
Darren Gosbell

Today we are happy to announce the release of version 3.0.9 of DAX Studio which includes the following fixes and Updates

info

If you are testing DAX Optimizer you should update to this release as it includes .

Indent based code Folding

This new preview feature enables the ability to collapse sections of a query based on the indenting levels

You can read more about this preview feature here

Updates

Fixes

  • Fix #1159 Saved Server Timings not loading
  • Fix #1155 add escaping to find references
  • Fix #1154 define measure in calculation groups
  • Fix <#1152 typo in Query Builder
  • Fix #1146 Sorting by Translated Names
  • Improved DQ formatting

· 2 min read
Darren Gosbell

Today we are happy to announce the release of version 3.0.8 of DAX Studio which includes the following fixes and Updates

info

If you are testing out the new Fabric Direct Lake mode you should upgrade to this version as it improves the performance of the metadata loading.

Updates

  • Improved metadata refresh against Fabric Direct Lake models
  • Include dynamic format string in Define Measure
  • Added winget publishing to release pipeline
  • Fixed #1130 added hierarchy support to Query Builder
  • Fixed #1135 allows for dragging entire tables to Query Builder

Fixes

  • Fixed #1099 Rendering issues in View Metrics
  • Fixed #1104 assembly signing in automated build process
  • Fixed #1105 bracket highlighting for CallbackDataID in Server Timings
  • Fixed #1111 prevented multiple trace windows when opening files
  • Fixed #1119 Query Builder not saving if user has read-only access
  • Fixed #1120 clear any previous errors at the start of Server Timings trace
  • Fixed #1123 corrected spelling of Power Pivot
  • Fixed #1126 recovering multiple documents can set the wrong active document
  • Fixed #1128 right-click copy in results was incorrectly copying all cells
  • Fixed #1136 error when using data export to SQL and column name has square brackets
  • Fixed crash in hierarchy tooltip
  • Fixed crash reports
  • Improved autosave clean-up
  • Fixed display of database name when connected to PBI Desktop
  • Fixed bug in expand measures

· 3 min read
Darren Gosbell

Today we are happy to announce the release of version 3.0.7 of DAX Studio

Metadata loading improvements

DAX Studio uses an asynchronous, lazy loading strategy to populate the metadata which has worked reasonably well over the years, but we occassionaly see some strange errors due about reader objects being already in use (such as those in issue #1076 ) or responses containing unexpected data. There are actually a number of small tweaks in the previous verion (3.0.6) which were meant to help avoid these issues, but there was also one minor improvement to the formatting of query results which made this worse.

This sort of issue was extremely hard to isolate because I rarely saw it myself and it was very hard to come up with consistent scenarios to reproduce the issue. And if you cannot reproduce an issue you can make changes, but you don't know if you've fixed the problem or if you've just been lucky. It turns out that with some help from some log files from users I was able to isolate and reproduce this issue and confirm that it was a multi-threading bug.

Starting with this version we now internally use a separate connection object for metadata and running queries so this should prevent this issue entirely going forward.

Delete entries from the recent server list

This is a small quality of life improvement where you can now delete entries from the recent server list from the connection dialog itself. This list should be self-maintaining as new entries are added at the top and old one should fall off the bottom over time. But if you have entries that are no longer valid and you want to clean up this list you now have an easy way to remove them.

Clearing the Log and Results panes

There are now right-click options on the Log and Results panes to allow you to clear them.

[Preview] Exporting Server Timings text to separate files

This option will change the behaviour of the export button in the Server Timings tab so that instead of exporting a single json file with the trace data it will export a file for each Storage Engine query that contains the text of each query. This can be useful in scenarios where the enging generates a lot of queries and you want to use another tool like VS Code to quickly navigate between the different files and compare them.

All new Features & Fixes

Below is the full list of all the new features and fixes.

Updates

  • #1094 delete items from server list
  • #491 Clear Log and Clear Results context menu options
  • Added a preview option for exporting

Fixes

  • #1092 fix for spelling mistake in installer option
  • #1076 fix for xmlReader in use errors
  • #1077 incorrect hash calculation
  • #1080 fixed issue with line comments when using linked Excel output
  • #1081 min/max not populating in tooltips for some DQ models
  • #1083 fixed linked Excel output not working with AAD authentication
  • #1084 fixed crash on ctrl+shift+c
  • #851 fixed Object not set error in Query Builder
  • Fixed an issue loading older versions of ServerTimings data
  • Fixed issues relating to a couple of reported crashes

· 6 min read
Darren Gosbell

Today we are happy to announce the release of version 3.0.6 of DAX Studio

Updated Timeline/Waterfall visualization in Server Timings

The old Waterfall column has been replaced by the new Timeline column. This column contains the same information as the old waterfall column, but includes a new background image to help visualise times during the execution of a query when either the formula engine (denoted by yellow sections) or the storage engine (denoted by blue sections) was active.

Below is an annotated example of the new Timeline column.

new timeline chart

  1. You can see at the start of this query that there is a block of yellow Formula Engine work taking place
  2. Then each of the Storage Engine scans are represented by a thicker blue rectangle
  3. Any batch events are represented by a lighter blue rectangle. You can see in this example that 3 preceeding scans are part of the batch
  4. Finally we can see that the query has a block of Formula engine work at the end of the query
info

Note that the time that is allocated to the Formula Engine (denoted by the yellow portions of the Timeline) are simply those times during the query when no Storage Engine events were taking place. We do not have separate events for the formula engine activity.

xmSQL / DirectQuery formatting improvements

The formatting of the xmSQL code in the Server Timings pane has been improved to include key word highlighting and improved line breaks to make the code easier to read updated xmSQL formatting

New output options

There are a number of improvements to the output options in this release of DAX Studio

New .json file Output option

When outputting to a file you now have the option to output to a json format. This output produces the same format as the Power BI ExecuteQueries REST API

Custom CSV encoding

When using the custom csv format you can now choose between utf-8 or unicode encoding

Formatted File output

There is now a "Formatted File" output option. The standard "File" output is the recommended one as it outputs your data with full precision, decimal numbers are output without any rounding and datetimes are output using a standard ISO 8601 format. However if you require a csv output which uses the same formatting that gets applied to the grid output then this new "Formatted File" option gives you that. Just be aware that if you are transferring these files between machines that you may have issues with datetime data if your regional settings are different between the machines.

FE Benchmarks (Preview)

tip

This feature is not visible by default you need to turn it on in the Options - Preview settings

The FE Benchmark feature runs a standard formula engine only query against the current data source. It produces a FE Benchmark number that should help in estimating the expected performance in production.

If your laptop runs a query in 2 seconds and it's index is 200, then if you run the same query on a server that has an index 100 we should expect roughly 4 seconds ie. the query will take twice as long since the benchmark score was half.

This option is currently in preview so that we can start testing this across a wider range of real world scenarios. There are a lot of other factors that can influence query performance such concurrent load, CPU cache size and type and the memory and memory bus speeds to name a few. So we may need to look at adjusting this as we gather more real information.

All new Features & Fixes

Below is the full list of all the new features and fixes.

New Features

  • #861 adding SHA256 hashes for downloads
  • #866 added copy with/without headers option for query results
  • #973 Added Duplicate option to tab right-click menu
  • #1016 open a .dax file by dragging it onto DAX Studio
  • #1031 adding encoding option for custom CSV output
  • #1051 added Formatted File as an output option
  • added json option when outputting to a file
  • FE Benchmarks
  • Updated Timeline/Waterfall visualization in Server Timings
  • xmSQL / DirectQuery formatting improvements
  • moved preview and vertipaq analyzer settings from the advanced to the standard options page

Fixes

  • #1062 fix vertipaq analyzer showing >unknown< in summary pane for AAS / PBIP
  • #1060 enabling Shift+Enter to be used as a custom hotkey
  • #1052 disabled re-ordering of columns in vertipaq analyzer
  • #1036 fix location of desktop shortcut file for Current User installs
  • #1030 QueryBuilder measures missing table references when loading from file
  • #1029 QueryBuilder IN filters not loading from file correctly
  • #1026 improving VertiPaq Analyzer tooltips
  • #1025 fixing spelling / capitalization errors
  • #968 Tool Window incorrectly docking
  • #967 permission error on non-admin install
  • #979 improved color contrast in dark mode
  • #994 adjusted measure icon position when vertical scrollbars are always displayed
  • #997 adding support for measure filters in Query Builder
  • #999 fixed display of columns with open parenthesis as first character
  • #951 moved Swap Delimiters / Debug Commas to advanced
  • fixed metadata display for multi-dimensional models
  • skip showing crash dialog if app is shutting down
  • Improved generation of Define Measure and Define Dependent Measures
  • Fixed crash in BindableFocusBehaviour and AutomationPeer
  • fixed cell alignment in View Metrics Columns screen
  • Fixed crash on update flag click event
  • Fixed crash when browsing for a folder during CSV data export
  • improvements for FE duration calculation
  • added default file name when exporting bim from vpax
  • fixed the hidden table icon
  • fixed Excel tracing
  • fixed invalid button states after failed connection attempt

· 4 min read
Darren Gosbell

Today we are happy to announce the release of version 3 of DAX Studio

Dark Mode!

This has been an outstanding request for a long time and finally we are happy to announce that we now support Dark Mode! You can switch between the 3 different mode settings using the button at the top of the ribbon

  • auto mode icon Auto-detect - attempts to set the appropriate mode based off the preferences in the Operating System (should work for Windows 10 or higher)
  • light mode icon Light mode
  • dark mode icon Dark mode

A clean, modern User Interface

With the help of the amazing Daniele at SQLBI we now have a clean, modern update to the user interface including new icons and visual styling

A couple of important changes worth noting are:

  • document tabs have been moved to the bottom
  • Metadata, Functions and DMV tabs have been moved to the top of their area
  • the tabs for Results, Logs, Traces have been move to the top of their area

New Ribbon options

In addition to being able to collapse the ribbon there is now also an option to show a simplified view

This view takes up less vertical space while still keeping the most commonly used features easily accessible.

Tracing Improvements

The internal tracing engine has been re-architected internally which will make it easier to add new trace types in future and it should also have fixed the issue where sometimes the trace data would

In addition the following enhancements have been made to the existing traces:

Server Timings - Waterfall column

A "waterfall" column has now been added to the Server Timings tab. This gives you a quick visual indication of which Storage Engine queries took the longest and where they

Query Plan - child operation indicator

The Query Plan trace will now show a dashed line to indicate operations that are children of the currently selected row. This

All Queries

The All Queries trace can now be run in parallel with other trace types. You used to have to either stop other traces or run them in a different document, but now all the different traces can be run at the same time if you need to.

info

Just take note that traces do add some extra load to the Tabular Engine, so it's a good idea to stop them when you have finished collecting the data you needed.

View As

A new View As option has been added in the Advanced tab to enable easy testing of RLS roles

This enables for both testing the functionality of the selected role to make sure queries return the correctly filtered data and you can run Server Timings traces to measure the impact of these roles on your queries.

When it is active the View As option shows a yellow information bar at the top of the query editor. You can exit out of the View As mode by clicking on the X in the right hand side of the information bar

To make performance comparisons even easier a new option has been added to the Benchmark feature which is enabled when you start the benchmark while you have View As active.

When you tick the option to do a second pass the benchmark results will include a second set of columns in the results for those passes where the RLS role was active

Other Updates / Fixes

The following lists other minor fixes and improvements that have been added since the previous release

Updates

  • #826 added PowerPivot model detection timeout in options
  • Updating syntax highlighting to handle multi-line strings
  • Added highlighting of cache nodes in physical query plans
  • Improved state tracking for trace windows
  • Prevented interleaving of clearcache with query execution
  • Width of the connection dialog has been increased

Fixes

  • Fixed #764 error when running from cmd prompt
  • Fixed #799 error when opening querybuilder files from older versions
  • Fixed #812 using FIPS compliant hash
  • Fixed #816 database dropdown too small
  • Fixed #838 added support for custom datetime formats when exporting to xlsx
  • Fixed #841 allowed for loading of performance data where component information was missing

· One min read
Darren Gosbell

Welcome to the DAX Studio blog.

This is an area where we will put content of interest to DAX Studio users