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

Déplacer des tables en ligne vers des groupes de fichiers avec contraintes et LOB

Mis en avant

Commençons cette semaine en revenant sur une discussion intéressante que j’ai eu avec un de mes clients pour déplacer plusieurs tables vers différents groupes de fichiers. Certaines d’entre elles contenaient des données LOB. Ajoutons à cela une contrainte supplémentaire du client: déplacer tout ce petit monde en ligne pour éviter d’impacter la disponibilité des données durant le processus de migration. Les tables concernées possèdaient des contraintes de schéma comme une clé primaire et des clés étrangères ainsi que des index non cluster. Finalement quelque chose de plutôt classique avec lequel nous pouvons avoir à faire tous les jours chez les clients.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

SQL Server sur Linux: Introduction à DBFS

Mis en avant

Il y a quelques mois, Microsoft annonçait 2 outils en lignes de commandes supplémentaires pour SQL Server avec notamment mssql-scripter et DBFS. Le dernier a tout particulièrement attiré mon attention car il expose les données en temps réels depuis les fameuses DMVs sur un pseudo système de fichiers virtuel à la façon Linux procfs.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server