Press "Enter" to skip to content

Author: Kevin Feasel

Calculating Moving Averages with DAX

Leila Etaati smooths the curve:

The calculation will be done for all rows, till we don’t have the anymore data ahead ( 3 rows ahead) as you can see it will finished on row 2018 as 2018 is the average of 2018, 2019 and 2020.

so in the moving average we will miss some data point but replacing with average of data.

Less data point but help us to see a clear trend.

Click through to see how to do this. Moving averages is really good for the reports in which you want to get a rough magnitude but don’t care about exact values and don’t want oscillations to throw you off. For example, if I need to know how many seats to reserve for an event, I might use a moving average of the last several events as my baseline, rather than the prior event’s number.

Comments closed

SSMS 19.1 Updates

Erin Stellato has a two-parter around SSMS 19.1. The first includes a small but important change:

In SSMS 19.1, the default value for Use system default web browser was changed to True.  This only applies to new installations; anyone upgrading from an earlier version of SSMS 19 will need to change the option to True manually.

This means that, for new installations, clicking on a link in SSMS will no longer open in the built-in SSMS browser, which doesn’t work for a lot of newer sites.

Part 2 picks up with some additional changes:

We have heard complaints, for months, about the startup time for SSMS.  Between 18.12.1 and 19.0 we made a few changes, and in 19.1 we delayed initializing the output window to also reduce startup time.  Some of you noticed!  Glenn Berry completed a round of testing and documented findings in his SSMS 19.1 Performance Improvements blog post.  We are hoping to also gain improvement when we get to SSMS 20, so know that our work is not yet done.

Click through for the full set of chnages.

2 Comments

Missing Index Hints and Index Rebuilds

Forrest McDaniel abuses that poor server:

The prod version of this issue manifested as 1-3 minutes of SCH-M blocking for index ops, yet only on a single server; I couldn’t replicate it anywhere else. Of course, bad blocking meant nasty timeouts, and that in turn meant I was reluctant to run live diagnostics. Better to just stop index rebuilds. One does not take down production in order to test weird SQL behavior.

An important clue came from a tiny table with a rebuild, and is visible in the whoisactive screenshot above. Why would such a small rebuild need so much CPU? That worker was definitely doing something – the question was what.

Read on to find out the answer, a repro script (that you should not run in your own production environment!), and what you can do about it.

Comments closed

Listing Files by Date in R

Steven Sanderson shows off a built-in function:

In R, the file.info() function is a useful tool for retrieving file information, such as file attributes and metadata. It allows programmers to gather details about files, including their size, permissions, and timestamps. In this post, we will explore the file.info() function and demonstrate how it can be used to list files by date.

Read on for more information. This function is a lot more powerful than simply running ls or dir (without any flags) in a directory.

Comments closed

Shiny Apps and Fullscreen Behavior

Tim Brock gives us a demo:

Browsers have been implementing variations on a JavaScript fullscreen API for over a decade. Unfortunately, for much of that time the APIs varied across browsers. This made actually using it in production somewhat cumbersome.

Finally, with the release of Safari 16.4 in March of this year, the latest versions of all major desktop browsers now support a single, standardized interface. Legacy versions of Safari for desktop are still in use and there’s still no support at all for the Fullscreen API on iPhones; so while you can cover most users with the standardized API, it should still be for progressive enhancement and not as a fundamental requirement for operation of an application.

Click through for the script.

Comments closed

Computed Properties in Cosmos DB

Hasan Savran shows off a new feature in Cosmos DB:

A computed property is a virtual property that is not physically stored in a document. You can use data from other properties of a document to calculate a value for the computed property. This will help you to save CPU power since the database engine does not need to calculate the computed column value for each query request. In the Cloud CPU power means money! Computed Columns are like coupons you can use to save money.

Read on to learn more about how computed properties work, their limitations, and some examples of how to create and use them.

Comments closed

Code Signing on an Executable

Gianluca Sartori takes us through the process of signing our own executables:

Why does happen with some files and doesn’t happen with the Chrome installer or Acrobat reader? Because those setup kits are signed with a certificate from Google and Adobe, released by a certification authority that checks that Google is actually Google and not a disgruntled random guy pretending to be Google.

This means you can sign your code too, you just need to get a code signing certificate from a certification authority and they will be happy to give you one in exchange for money.

Click through for the step-by-step demonstration and a Powershell script to perform the signing.

Comments closed

Contrasting Lakehouse, Warehouse, and Datamart in Fabric & Power BI

Reza Rad disambiguates three terms:

Three types of objects in the Microsoft Fabric have similarities in what they can do for an analytics system. These three are; Lakehouse, Data Warehouse, and Power BI Datamart. All three objects provide storage for the data, which can be loaded into them using an ETL process and read using something like a Power BI report. In this article and video, I’ll explain the actual differences and how to choose the best option for your implementation and architecture.

Reza does a good job explaining when each of the three fit in and even has a nice chart to work out which one you might want to use.

Comments closed

Power BI Theme Generator Updates

Seth Bauer has some updates for us:

Gradients add depth and visual interest to your reports and dashboards. With our enhanced gradient selections, you can now choose from a wide array of gradient styles to create eye-catching visualizations. Whether you prefer subtle transitions or bold color shifts, the Power BI Tips Theme Generator has you covered. Unleash your creativity and elevate your designs with stunning gradient effects.

Not all of the updates are in the free plan, though some of them are.

Comments closed

SSIS Package Migration with dtutil

John McCormack does some spring cleaning:

SQL Server Integration Services (SSIS) is a powerful tool, but migrating packages across SQL Servers can be a slow and thankless task if you don’t use automation. The single best way to do this is by using DTUTIL, a command-line utility provided directly by Microsoft. When it comes to moving 1000s of packages, I would only use DTUTIL because it can achieve in minutes what it would takes days to achieve using point and click.

Read on to see how you can move these packages between instances, as well as downloading packages as a backup.

Comments closed