Partitionnement: Lorsqu’un mouvement de données n’est pas réalisée comme attendue

Mis en avant

Dans ce billet, il est question d’un cas de partitionnement intéressant avec un comportement curieux de mouvement de données (du moins à première vue). J’étais chez mon client qui utilise de manière intensive le partitionnement pour diverses raisons incluant l’archivage et la facilité de gestion. Il y a quelques jours, nous avons décidé de tester un script fraîchement développé qui prendra en charge l’archivage des partitions sur un environnement de qualité.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

SQL Server 2016: TRUNCATE PARTITIONS et scénarios Sliding Window

Mis en avant

Il y a quelques temps, j’ai eu à gérer un scénario de partitionnement incluant une gestion sliding Window pour principalement des besoins d’archivage. Concernant le contexte client, j’ai utilisé des scripts de gestion automatique composée d’une étape de suppression de la partition la plus ancienne. Dans ce contexte précis, les données au delà de 2 ans peuvent être supprimées et généralement dans ce cas, j’utilise une méthode consistant à supprimer les données en les déplaçant depuis la partition la plus ancienne vers une table de staging. Ensuite je les supprime en utilisant la commande TRUNCATE. Finalement, nous pouvons à ce moment précis fusionner en tout sécurité les données de la partition la plus ancienne en évitant un quelconque mouvement de données. Au premier coup d’œil, le processus semble complexe mais jusqu’à la version 2014, il n’y avait pas de meilleur choix pour minimiser l’enregistrement des opérations dans le journal.

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Lorsqu’une recherche d’index n’est pas forcément adéquate

Mis en avant

N’avez-vous jamais considéré une recherche d’index comme un problème? Laissez moi vous raconter une histoire avec un de mes clients avec un contexte simple: une requête spécifique qui n’était pas dans les valeurs acceptables de performance exigées (environ 200ms de temps d’exécution moyen). Le plan d’exécution associé de la requête était similaire à ce que vous pouvez voir ici

> Lire la suite (en anglais)

David Barbarin
MVP & MCM SQL Server

Les 24 heures du PASS (24HOP) – édition francophone

Mis en avant

24hour_pass

Cette année a eu lieu la première édition francophone des 24h du PASS (les 20 et 21 septembre 2016). L’idée était plutôt simple: proposer une série de 24 webinaires gratuits de 10h jusqu’à 22h (heure française) pendant 2 jours. C’était l’occasion de recevoir et d’échanger les dernières informations autour de l’administration et du développement des bases de données, des nouvelles tendances côté Business Intelligence et du Cloud.

Pour ma part, c’est avec plaisir que j’ai eu l’occasion d’échanger avec vous autour de 2 sujets: tempdb et bonnes pratiques ainsi que des columnstore et leur implication dans les nouvelles tendances d’architecture BI avec Thoi Dung TSP Microsoft Switzerland.

C’est encore l’occasion de remercier les sponsors et Isabelle sans qui ce type d’événement n’aurait certainement pas eu lieu.

Les slides et démos devraient arriver sous peu!

David Barbarin
MVP & MCM SQL Server

Windows Failover Cluster: Introduction à la notion de paxos tag

Mis en avant

Il y a quelques jours, mon collègue Nathan Courtine et moi étions en charge d’une nouvelle implémentation d’une infrastructure AlwaysOn à base de groupes de disponibilités. Une des étapes importantes dans notre approche consiste à éprouver l’architecture en place face à différents simulation de problème qui pourraient potentiellement survenir. Notre matrice de test inclus un scénario de récupération suite à un désastre avec redémarrage en mode quorum forcé.

Redémarrer un cluster à basculement dans un tel mode implique l’exécution de routines internes sur la base de données interne d’un cluster. Cette dernière utilise notamment un algorithme nommé Paxos pour garantir que les changements survenus sur un nœud soient répliqués de manière atomique sur le reste de membres de la topologie. Qu’est que Paxos exactement? Pour être honnête, j’avais déjà certains enregistrements dans le journal du cluster évoquant ce sujet et je n’avais jamais vraiment pris le temps de regarder plus précisément à quoi cela correspondait …

> 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

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

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

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