Today let’s talk about Cloud and Azure. My new job gives me now the opportunity to work in a hybrid environment with some components hosted in a cloud including SQL Azure Databases. To get straight to the point, PaaS databases are different beasts and I my confirm DBA role is shifting to another dimension. The focus is more on providing higher value in the architecture design and tuning because resources are a big concern, at least in a different order of magnitude, because they are now treated as operational expenses (OpEx). Entering now in a World of code as infrastructure, provisioning such service has become an easy game and can be automated through Cloud provider APIs and specialized tools. My colleagues already did a lot of good jobs on this topic.
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.
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:
Introducing SQL Server with Portworx and storage orchestration
Mis en avant
Stateful applications like databases need special considerations on K8s world. This is because data persistence is important and we need also something at the storage layer communicating with the container orchestrator to take advantage of its scheduling capabilities. For Stateful applications, StatefulSet may be only part of the solution because it primary focuses on the Pod availability and we have to rely on the application capabilities for data replication stuff. But StatefulSet doesn’t address that of the underlying storage at all. At the moment of this write-up, StatefulSet-based solutions for SQL Server such availability groups are not supported yet on production.
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 Docker Swarm
Mis en avant
SQL Server 2017 est disponible sur de multiples plateformes: Windows, Linux et Docker. La dernière plateforme fournit des fonctionnalités de containerisation avec setup rapide et sans prérequis spécifiques avant d’exécuter des bases de données SQL Server qui sont probablement la clé du succès pour les développeurs.
> 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
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