SQL Server 2016 : nonclustered columnstore index et aggregate pushdown

Mis en avant

Avez-vous manqué cette nouvelle fonctionnalité nommée aggregate pushdown incluse avec les index columnstore? Je me souviens, pour ma part, d’en avoir entendu parlé la première fois en lisant le blog de Niko Neugebauer ici qui couvre déjà bien le sujet (principe, avantages et inconvénients)

Pourquoi écrire un nouveau billet ici? Eh bien tout simplement parce que depuis le billet de blog de Niko, cette fonctionnalité a été améliorée and je voulais l’éprouver avec un scénario client réel (mais simplifié ici). Par ailleurs, il est vrai que je n’ai pas mentionné cette fonctionnalité lors de ma dernière présentation aux dernières journées SQL server concernant les technologies In-Memory 2016 et l’analyse opérationnelle avec Frédéric Pichaut (Ingénieur support Microsoft) and c’était l’occasion de me rattraper dans billet

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Chute de l’espérance de vie d’une page mais ne paniquez pas tout de suite!

Mis en avant

Il y a quelques semaines de cela, j’ai eu une discussion intéressante avec un de mes clients a propos de la surveillance du fameux page life expectancy (ou PLE). Il me demandait si cela était une bonne pratique de surveiller sa valeur parce qu’il avait remarqué une grosse chute de ce dernier en dessous des recommandations en vigueur et ceci durant la nuit ou quelques fois pendant la journée. En plus, il craignait d’être déranger la nuit à cause de tâche de maintenance qui s’exécuterait sans impact sur l’activité business à ce moment là.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Changement une partition existante … pas si facile que cela

Mis en avant

Cette fois, parlons d’un cas client intéressant avec une table partitionnée de 100 GB sous SQL Server 2014. Dans ce contexte, le partitionnement avait pour objectif de sauvegarder de l’espace disque (données d’archives compressées), aider à réduire les temps de maintenance ainsi et les ressources consommées (utilisation des opérations d’index et de statistiques à la partition). Par la même occasion, cela aidera à améliorer les performances de requête sur la table concernée qui se concentre uniquement que sur les commandes récentes des clients.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

NOLOCK n’est définitivement pas ce que vous croyez

Mis en avant

Pour ceux qui croient encore qu’utiliser le hint nolock se prémunit contre tout verrou, lisez la suite de ce billet. J’avais déjà écrit un billet précédent sur le sujet il y a 3 ans environ, lorsque j’étais chez un client et que nous avions eu une discussion intéressante sur ce type de hint placé dans les requêtes de Reporting. Cette fois, j’ai pu expérimenté chez un autre client, une problématique de verrouillage intéressante en utilisant ce même hint.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Dilemme entre les filtres dynamiques et les requêtes « kitchen sink »

Mis en avant

Etre confronté aux filtres dynamiques est un scénario assez courant avec les applications de gestion ou les ERP. En effet, les utilisateurs voudraient avoir la flexibilité de filtrer and de trier leur données business comme ils veulent afin d’être le plus efficace possible. cibler et opérer rapidement sur les bonnes données est en phase avec les exigences de performances quotidiennes. Du moins c’est ce que j’ai pu noter chez différents clients.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Groupes de disponibilités : paramètre session timeout

Mis en avant

N’avez-vous jamais souffert de problèmes de timeout avec les groupes de disponibilités? Si vous jetez un coup d’Å“il aux différents paramètres dans ce domaine, vous en trouverez une certaine quantité. En effet, il y a des paramètres pour le groupe lui même, les réplicas and pour le cluster également.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

SQL Server 2016 groupes de disponibilités AlwaysOn et performance

Mis en avant

Lors du dernier SQL Saturday à Paris, j’ai eu la chance de co-animer une session sur les nouveautés SQL Server 2016 et notamment les groupes de disponibilités. J’avais mentionné à cette occasion des améliorations certaines du débit au niveau de la couche transport sans pour autant donner de détails et c’est un peu l’idée de ce billet.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

SQL Server 2016 : le Query Store

Mis en avant

Probablement l’une des fonctionnalités les plus intéressantes avec SQL Server 2016, le query store (ou magasin de requêtes) va compléter la trousse à outils de performance du DBA. Fondamentalement, le query store va récupérer les requêtes, leur plans d’exécutions ainsi que les statistiques d’exécutions. Il semble que ce soit l’outil idéal pour détecter la régression de requêtes.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

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

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