Curious case of locking scenario with SQL Server audits

Mis en avant

In high mission-critical environments, ensuring high level of availability is a prerequisite and usually IT department addresses required SLAs (the famous 9’s) with high available architecture solutions. As stated by Wikipedia: availability measurement is subject to some degree of interpretation. Thus, IT department generally focus on uptime metric whereas for other departments availability is often related to application response time or tied to slowness / unresponsiveness complains. The latter is about application throughput and database locks may contribute to reduce it. This is something we are constantly monitoring in addition of the uptime in my company.

Lire la suite

SQL Server index rebuid online and blocking scenario

Mis en avant

A couple of months ago, I experienced a problem about index rebuild online operation on SQL Server. In short, the operation was supposed to be online and to never block concurrent queries. But in fact, it was not the case (or to be more precise, it was partially the case) and to make the scenario more complex, we experienced different behaviors regarding the context. Let’s start the story with the initial context: in my company, we usually go through continuous deployment including SQL modification scripts and because we usually rely on daily pipeline, we must ensure related SQL operations are not too disruptive to avoid impacting the user experience.

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

SQL Server on Linux and new FUA support for XFS filesystem

Mis en avant

I wrote a (dbi services) blog post concerning Linux and SQL Server IO behavior changes before and after SQL Server 2017 CU6. Now, I was looking forward seeing some new improvements with Force Unit Access (FUA) that was implemented with Linux XFS enhancements since the Linux Kernel 4.18.

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

SQL Server service broker and curious duplicate messages case

Mis en avant

One of my last write-up to finish the year 2019. A couple of days ago, I ran into an interesting issue concerning a service broker architecture. Let’s introduce quickly the context: this is a start-based architecture with one target and more than 80 initiators as shown below:

Lire la suite

SQL Server sur Docker et réseau bridge

Mis en avant

Continuous sur la série des billets à propos de SQL Server sur Docker. Il y a quelques jours, j’étais chez un client qui avait déjà implémenté SQL Server 2017 sur Linux dans des containers. Ce fût évidemment une journée très enrichissante avec beaucoup de retour d’expérience et de feedbacks de sa part. Nous avons beaucoup discuté de scénarii d’architectures.

Le point intéressant ici est que j’ai pu comparer le scénario en place avec celui d’un autre client qui avait implémenté depuis un moment mais d’une façon toute à fait différente.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Recherche d’index et IO résiduels

Mis en avant

Ce billet fait suite au précédent à propos des recherches d’index et les pièges associés. J’ai pu rencontrer un autre cas intéressant mais ce n’est pas tellement la nature du problème qui m’a décidé à écrire mais plutôt les différentes façons qu’il existe de l’appréhender.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

SQL Server sur Linux et journalisation

Mis en avant

Dans un monde Windows, SQL Server journalise les informations dans le journal des erreurs SQL et dans le journal d’application Windows. Les deux systèmes horodatent automatiquement les événements. Contrairement au journal des erreurs SQL Server, le journal d’événements Windows fournit une image plus globale des événements passés sur le système d’exploitation. Ainsi en fonction des erreurs rencontrées, l’analyse d’un tel journal – que ce soit depuis l’observateur d’éléments Windows ou via le cmdlet PowerShell Get-EventLog – peut être bénéfique pour comprendre si celles-ci sont uniquement liées à SQL Server ou s’il existe une corrélation avec des erreurs provenant du système d’exploitation.

Mais qu’en est-il de SQL Server sur Linux? Evidemment, nous pouvons bénéficier des mêmes technologies de journalisation. Comme sur Windows, SQL Server journalise l’information dans le journal des erreurs SQL Server localisé dans le répertoire /var/opt/mssql/log and dans les différents journaux Linux prévus à cet effet.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server