SQL DB Azure, performance scaling thoughts

Mis en avant

Let’s continue with Azure stories and performance scaling …

155 - 0 - banner

A couple of weeks ago, we studied opportunities to replace existing clustered indexes (CI) with columnstore indexes (CCI) for some facts. To cut the story short and to focus on the right topic of this write-up, we prepared a creation script for specific CCIs based on the Niko’s technique variation (no MAXDOP = 1 meaning we enable parallelism) in order to get a better segment alignment.

Lire la suite

Configuring Integrated Windows Authentication with SSRS and SQL DB Azure

Mis en avant

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.

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

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

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.

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 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