Envie de faire un benchmark de votre stockage? Il est temps de passer à diskspd

Mis en avant

Comme vous le savez certainement, SQLIO est officiellement dépréciée depuis quelques mois. Pour ma part, j’ai eu l’occasion (peut être la dernière) d’utiliser SQLIO pour un projet client dans le but d’effectuer un benchmark de son stockage et préparer une installation AlwaysOn et groupes de disponibilité. Il est maintenant temps de passer au prochain outil prévu à cet effet: DiskSpd.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

SQL Server groupes de disponibilités AlwaysOn: réplicas secondaires en lecture seule et reconstruction d’un index hors ligne vs en ligne

Mis en avant

Il y a quelques semaines, j’ai participé à une discussion sur le forum développez.com concernant SQL Server AlwaysOn et les groupes de disponibilités, les stratégies d’indexation et l’impact sur les réplicas en lecture seule, Durant la discussion, un membre du forum affirmait que reconstruire un index en ligne avait moins d’impact sur un réplica secondaire en lecture seule qu’une ré-indexation hors ligne. J’avoue n’avoir pas être forcément d’accord avec cela mais est-ce la vérité? Vérifions le dans ce billet.

> Pour lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

SQL Server groupes de disponibilités AlwaysOn et pool de travail hadr

Mis en avant

Lors de mes missions sur SQL Server AlwaysOn et les groupes de disponibilités, les clients me demandent souvent s’il existe des bonnes pratiques et recommandations sur le nombre maximum de bases de données dans un groupe de disponibilité. En réalité, pour répondre à cette question, nous devons garder à l’esprit la relation qu’il y a entre les bases de données et le pool de threads de travail dans ce type d’architecture.

> Pour lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Jointure, transitivité et simplification de requête

Mis en avant

Au cours d’une discussion hier avec un de mes amis « oraclien » nous avons débattu sur les différents comportements d’optimisation entre Oracle et SQL Server sur un cas bien précis. Vous pouvez lire son billet ici et trouver un script pour reproduire le problème par vous même. J’ai donc décidé d’écrire un billet à mon tour parce que cette discussion avait introduit des concepts intéressants que je voulais approfondir côté SQL Server.

> Pour lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

SQL Server et groupes de disponibilités AlwaysOn: comment isoler le trafic de réplication?

Mis en avant

Il y a quelques jours, j’étais impliqué dans un projet d’implémentation d’une infrastructure de groupes de disponibilités AlwaysOn 2014. Au cours de ce projet, mon client voulait isoler le trafic de réplication du réseau publique. L’idée était de garantir un meilleur contrôle de la bande passante du réseau ainsi qu’une latence minimale en cas de trafic réseau applicatif important ou de sauvegardes.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

sp_cursor_fetch et performance

Mis en avant

Il y a quelques semaines lors d’un audit, mon client me parlait de problèmes de performances identifiés uniquement sur la phase de login de son application. Après des échanges divers entre le client et l’éditeur de logiciel, nous avons constaté que le problème ne se produisait pas lorsque l’application et l’instance SQL Server étaient installées sur le même serveur (moins d’une seconde avec la configuration de l’éditeur contre 10 secondes avec celle du client). A vrai dire, mon client ne possédait pas tout à fait la même configuration qui comprenait un serveur applicatif et un serveur de bases de données distant. Imaginez la déception du client lorsqu’il s’est aperçu que sa configuration matérielle était de loin plus puissante que celle de l’éditeur de logiciel pour ces tests avec un même volume données.

> Pour lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

N’utilisez pas les paramètres par défaut AUTOGROW!

Mis en avant

Au cours de mes audits clients, j’ai souvent vu les paramètres d’expansion de fichiers par défaut sur les bases de données utilisateurs et comme vous le savez ceci n’est pas forcément une bonne pratique. Laissez moi vous raconter une histoire drôle vécue qui concerne une situation extrême avec un fichier journal et ses paramètres par défaut.

> Pour lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Index cluster columnstore et gestion de la mémoire

Mis en avant

Il ya quelques semaines, j’ai eu l’occasion de donner une session sur la fonction d’index cluster columnstore (CCI) lors de notre événement In-Memory dédié aux technologies Microsoft SQL Server, Oracle et SAP HANA. Au cours de notre session, j’ai expliqué les améliorations apportées par Microsoft sur SQL Server 2014, avec l’introduction du nouvel index cluster columnstore (CCI).

Le CCI comprend une nouvelle structure qui permet des opérations de mise à jour: le fameux deltastore. En effet, les opérations d’insertion vont directement dans ce magasin. La suppression de données est purement logique et va être également répertorié dans une partie du deltastore appelée deleted bitmap. Enfin la mise à jour de données va se transformer en 2 opérations élémentaires INSERT et DELETE. En réalité, j’étais très intéressé de savoir comment s’articulait ces deux structures spécifiques (deltastore et columnstore) et comment SQL Server gérait la mémoire la mémoire dans ces différents scénarios. Ce blog est simplement le résultat de mes études et concerne probablement ceux qui aiment regarder sous le capot de SQL Server. Pour être tout à fait honnête, l’idée m’est venue lorsque je discutais avec un de mes amis « Oraclien » et qui me posaient des questions intéressantes sur la gestion du CCI.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Utilisation des snapshots VSS et SQL Server – Part I

Mis en avant

Ceci est probablement une série de billets concernant les snapshots VSS et SQL Server. Laissez moi introduire le sujet avec cette anecdote:

Il y a quelques temps, nous avons implémenté une stratégie de sauvegarde chez un de mes clients basée sur une combinaison FULL, DIFF et sauvegarde du journal des transactions. Aucun problème pendant un moment et un jour mon client m’appelle en me disant que depuis un certain temps, la sauvegarde différentielle en place ne se faisait plus correctement avec le message d’erreur suivant ..

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Insérer 1 million de lignes part II – Write commit

Mis en avant

L’idée de cette suite de blogs est toute simple:

Insérer 1 millions de lignes le plus rapidement possible dans une table sous SQL Server en utilisant différentes techniques avec un environnement relativement restreint. Cette initiative vient de mon collègue Franck Pachot qui travaille sur Oracle et suivi par Daniel Westermann pour la partie PostGreSQL. L’idée n’est pas tant de comparer les 3 SGBDs du point de vue de la performance pure mais de voir les outils et techniques utilisables sur différents SGBDs pour ce genre d’exercice.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server