Extending SQL Server monitoring with Raspberry PI and Lametric

Mis en avant

First blog of this new year 2021 and I will start with a fancy and How-To Geek topic

In my last blog post, I discussed about monitoring and how it should help to address quickly a situation that is going degrading. Alerts are probably the first way to raise your attention and, in my case, they are often in the form of emails in a dedicated folder. That remains a good thing, at least if you’re not focusing too long in other daily tasks or projects. In work office, I know I would probably better focus on new alerts but as I said previously, telework changed definitely the game.

Lire la suite

Why we moved SQL Server monitoring on Prometheus and Grafana

Mis en avant

During this year, I spent a part of my job on understanding the processes and concepts around monitoring in my company. The DevOps mindset mainly drove the idea to move our SQL Server monitoring to the existing Prometheus and Grafana infrastructure. Obviously, there were some technical decisions behind the scene, but the most important part of this write-up is dedicated to explaining other and likely most important reasons of this decision.

Lire la suite

Dealing with SQL Server on Linux on WSL2

Mis en avant

This is a blog post I intended to write sometime ago … about using SQL Server on Linux on WSL2. For whom already installed it on Windows 10, version 2004, you are already aware it doesn’t come with the support of systemd. Indeed, although it does exist in the file system, systemd is not running. If you intend to use directly SQL Server on WSL2, you need to read this carefully, because installation and management relies precisely on systemd!

Lire la suite

Universal usage of NVARCHAR type and performance impact

Mis en avant

A couple of weeks, I read an article from Brent Ozar about using NVARCHAR as a universal parameter. It was a good reminder and from my experience, I confirm this habit has never been a good idea. Although it depends on the context, chances are you will almost find an exception that proves the rule.

Lire la suite

dbachecks and AlwaysOn availability group checks

Mis en avant

When I started my DBA position in my new company, I was looking for a tool that was able to check periodically the SQL Server database environments for several reasons. First, as DBA one of my main concern is about maintaining and keeping the different mssql environments well-configured against an initial standard. It is also worth noting I’m not the only person to interact with databases and anyone in my team, which is member of sysadmin server role as well, is able to change any server-level configuration settings at any moment. In this case, chances are that having environments shifting from our initial standard over the time and my team and I need to keep confident by checking periodically the current mssql environment configurations, be alerting if configuration drifts exist and obviously fix it as faster as possible.

Lire la suite

Availability Group 2017 Direct seeding and updated default path policy

Mis en avant

A couple of days ago, I ran into an issue when adding a new database in direct seeding mode that led me to reconsider refreshing my skills on this feature. Going through the AG database wizard for adding database, I faced the following error message …

Lire la suite

Collaborative way and tooling to debug SQL Server blocked processes scenarios

Mis en avant

A quick blog post to show how helpful an extended event and few other tools can be to help fixing orphan transactions in a real use case scenario. I often gave training with customers about SQL Server performance and tools, but I noticed how difficult it can be to explain the importance of a tool if you only explain theory without any illustration with a real customer case.
Well, let’s start my own story that began a couple of days ago with an SQL alert to indicate a blocking scenario issue. Looking at our SQL dashboard (below), we were able to confirm quickly we are running into an annoying issue and it would be getting worse over if we do nothing.

Lire la suite

Expérimentation d’une mise à jour de statistiques sur une grosse table par des voies détournées

Mis en avant

Ceci est mon premier blog de l’année 2018 et depuis un moment d’ailleurs. En effet, l’année dernière j’ai mis toute mon énergie à réajuster mes connaissances Linux avec la nouvelle stratégie Open Source de Microsoft. Mais en même temps, j’ai réalisé un certain nombre de tâches intéressantes chez certains clients et en voici une pour commencer cette nouvelle année. Dans ce billet, j’aimerai souligner une approche particulière (selon moi) pour optimiser une mise à jour de statistiques pour une grosse table.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Lorsqu’une recherche d’index n’est pas forcément adéquate

Mis en avant

N’avez-vous jamais considéré une recherche d’index comme un problème? Laissez moi vous raconter une histoire avec un de mes clients avec un contexte simple: une requête spécifique qui n’était pas dans les valeurs acceptables de performance exigées (environ 200ms de temps d’exécution moyen). Le plan d’exécution associé de la requête était similaire à ce que vous pouvez voir ici

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Changement une partition existante … pas si facile que cela

Mis en avant

Cette fois, parlons d’un cas client intéressant avec une table partitionnée de 100 GB sous SQL Server 2014. Dans ce contexte, le partitionnement avait pour objectif de sauvegarder de l’espace disque (données d’archives compressées), aider à réduire les temps de maintenance ainsi et les ressources consommées (utilisation des opérations d’index et de statistiques à la partition). Par la même occasion, cela aidera à améliorer les performances de requête sur la table concernée qui se concentre uniquement que sur les commandes récentes des clients.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server