mercredi 15 janvier 2020

Batch mode on row store

Le "batch mode on row store" : encore une nouveauté de l'optimiseur de SQL Server 2019 qui améliore sensiblement les performances de certaines requêtes. Cette vidéo disponible sur la chaine youtube Datafly vous en fait la démonstration et vous allez voir que cela peut être diablement efficace.

Au passage, on découvre en passant certaines des nouvelles fonctionnalités du moteur depuis SQL Server 2017 : les jointures adaptatives et le memory grant feedback.

A voir ici : https://www.youtube.com/watch?v=KuokF5kQdXI

vendredi 10 janvier 2020

Avez-vous des deadlocks ?

Savez-vous que SQL Server capture en permanence les évènements deadlocks qui surviennent, grâce à sa session d'évènements étendus toujours active ? Découvrez comment exploiter ce journal et afficher les derniers deadlocks en format graphique...

Lire la suite...

dimanche 5 janvier 2020

SOS Verrous bloquants

Le mode d'isolation par défaut de SQL Server s'appuie sur du verrouillage pour supporter des accès concurrents aux mêmes données : si des transactions de modification ne se terminent pas, d'autres transactions qui veulent accéder aux mêmes ressources restent en attente.

On rencontre donc de temps en temps sur le terrain des applications sujettes à des verrous bloquants. Le problème est classiquement d'ordre applicatif : des transactions trop longues (voire même parfois qui ne sont jamais fermées). Et bien souvent, c'est le serveur SQL qu'on accuse, plutôt que de se pencher sur le fonctionnement de l'application.

Quelles sont les méthodes (les bonnes et les moins bonnes) pour en sortir ?

Lire la suite...

vendredi 27 décembre 2019

TSQL : Gérer des listes avec séparateurs

Il arrive parfois que l'on doive gérer gérer des listes avec séparateurs, soit pour les "tabulariser" (transformer la liste en colonne de valeurs), soit pour les produire à partir des valeurs d'une colonne,.

Par exemple, transformer "pain, vin, boursin" en :

colonne1
pain
vin
boursin

... ou l'inverse...!

Nous voyons ici les syntaxes disponibles, et aussi les nouvelles fonctions qu'apportent à ce sujet SQL Server 2016 et 2017 : STRING_SPLIT et STRING_AGG

Lire la suite...

lundi 16 décembre 2019

Surveiller les opérations longues

Lorsque nous créons un index sur une table volumineuse, l'opération risque d'être longue et par défaut nous n'avons aucune information sur son avancement avant qu'elle ne se termine.

Même chose pour une opération de shrink de fichiers (DBCC SHRINKFILE), une sauvegarde ou une restauration

Mais il existe des solutions...

Lire la suite...

mardi 26 novembre 2019

SQL Server 2019 et licences avec Always On

Bon à savoir : avec SQL Server 2019, Microsoft a fait quelques améliorations de l'accord de licences en ce qui concerne les réplicas Always On en édition Enterprise.

Lire la suite...

mardi 5 novembre 2019

SQL Server 2019 ou 2016 ?

Ayant téléchargé l'édition développeur en français dès sa disponibilité, je constate que le label de l'image ISO affiche SQL 2016 et non 2019.
Rassurez-vous, c'est bien SQL Server 2019. Juste un détail inoffensif qui n'a pas été vérifié avant la mise en ligne, espérons qu'il n'y en n'a pas d'autres plus graves...

Par ailleurs, vous avez peut-être comme moi plusieurs versions installées : sur mon portable, il y a 2012, 2014, 2016, 2017 et maintenant 2019. Si l'installation de SQL Server 2019 échoue avec l'erreur "Une erreur liée à une dépendance du composant s'est produite, entraînant l'échec du processus d'installation du composant.", vérifiez si le problème provient de l'installation du client natif (SQL_SNAC_SDK_sqlncli_Cpu64). Si c'est cette cause, désinstallez le client natif SQL Server 2012 avant l'installation de SQL Server 2019.

Un dernier point, pour l'avoir testé aujourd'hui, l'outil Readtrace (RML Utilities) lit sans problème une trace profiler de SQL Server 2019, à condition d'avoir bien mis à jour sa version comme c'est indiqué ici.

lundi 4 novembre 2019

SQL Server 2019 est disponible

Il était juste temps, nous sommes encore en 2019 pour un peu moins de 2 mois : Microsoft annonce aujourd'hui la disponibilité générale de SQL Server 2019.

Vous pouvez télécharger une version d'évaluation ou développeur à cette adresse, langue au choix.

Nous avions déjà évoqué les nouveautés de cette version : clusters big data avec kubernetes, nouveautés du moteur, ... A suivre sur ce blog et sur la chaine youtube datafly

Le téléchargement se termine et l'installation de la RTM va démarrer, pour l'utiliser dès demain.

lundi 23 septembre 2019

SQL Server 2019 : performance des UDF scalaires

La sortie de SQL Server 2019, actuellement en release candidate, se rapproche.
Ce petit webcast avec présentation et démo va plaire aux développeurs qui usent et abusent d'UDF scalaires : une nouvelle optimisation de cette future version pour l'incorporation des fonctions UDF scalaires dans le plan d'exécution (ou en anglais UDF scalar inlining).

mercredi 18 septembre 2019

Readtrace et SQL Server 2019

Je reste un aficionado de l'outil ReadTrace pour l'analyse de performance des requêtes à partir d'une capture de trace du Profiler.

ReadTrace fait partie des ("vieux") outils RML, dispensés gratuitement (mais sans support) par le support Microsoft. Mais bien entendu, les mises à jour de cet outil sont peu fréquentes et la dernière version ne prend pas en charge au-delà de SQL Server 2014 : quid de 2016, 2017 ou 2019 ? Heureusement il y a une astuce (en fin d'article)...

Nous allons voir ici l'intérêt de cet outil pour nous aider à analyser les performances des requêtes.

Lire la suite...

- page 3 de 16 -