Vidéos des sessions Data Frogs

Après un long moment d’absence, je suis revenu en animant une session parmi d’autres, sur le Query Store. Voici le menu :

David Barbarin – Maintenance des statistiques avec SQL Server
Nicolas Souquet – Tout savoir sur le Query Store
Amar Adghar – Azure, quelle architecture pour moi ?
Arian Papillon and Julien Pierre – Les fausses bonnes idées SQL Server
Christophe Laporte – Configurer SQL Server pour un dépannage efficace
Hugo Kornelis – T-SQL User-Defined Functions, or: How to kill performance in one, easy step
Frédéric Brouard – Passer de SQL Server à PostGreSQL … ou l’inverse ?

Les vidéos sont disponibles ici.
Retrouvez également les scripts que j’ai utilisés pour les démos ici.

Bonne visualisation ;)

Sortie de SQL Server 2017 : installation !

La sortie de SQL Server 2017 marque un tournant majeur pour Microsoft, puisque SQL Server est maintenant disponible sous Linux. Jusqu’ici, ce n’était pas le cas, et c’était très probablement le dernier rempart à l’adoption de SQL Server dans les entreprises où l’infrastructure logicielle de Linux/Unix est prépondérante.

Il y a bien d’autres éléments qui ont été ajoutés aux fonctionnalités de SQL Server avec ce nouvel opus, que l’on peut télécharger à partir de cette page. Plus bas dans celle-ci, on trouve également les téléchargements de SQL Server Management Studio 2017, SQL Server Data Tools, et les connecteurs pour faire interagir une application avec SQL Server en .NET, Java, mais aussi Python et Ruby.

Notons que depuis SQL Server 2014, l’édition Developer de SQL Server est gratuite, ce qui fait qu’on peut la télécharger sur nos PCs et commencer à bricoler après quelques minutes d’installation, en faisant appel à toutes les possibilités et fonctionnalités du moteur de base de données : l’édition Developer, est, en termes de fonctionnalités, équivalente à l’édition Enterprise, qui les offre toutes.

Voyons donc ce qu’il en est :
Lire la suite

Résoudre les problèmes les plus communs de connexion à SQL Server

Qui n’a jamais eu le message d’erreur suivant ?

  • A network-related or instance-specific error occurred while establishing a connection to SQL Server
  • Login failed for user DOMAIN\user

Microsoft vient de publier un guide de résolution de ces erreurs, qui indique les sources du problème et les étapes de résolution.

Bonne connexion(s) !

Retrouver les séquences attachées à des contraintes de valeur par défaut

SQL Server 2012 a introduit les objets SEQUENCE.
Ils permettent, en outre, de spécifier des contraintes de valeur par défaut. Ils vont aussi remplacer la propriété d’auto-incrémentation typiquement utilisée pour les colonnes supportant des contraintes de clé primaire subrogée.

Dès lors, comment retrouver les séquences référencées par de telles contraintes ? Voici un exemple et une petite requête pour nous y aider …
Lire la suite

SQL Sentry Plan Explorer Pro maintenant entièrement gratuit

On ne présente plus l’incontournable outil SQL Sentry Plan Explorer, que j’avais introduit ici et détaillé là.

SQL Sentry a annoncé hier que le fabuleux outil qui facilite grandement la lecture de plans de requête, SQL Sentry Plan Explorer, est maintenant gratuit dans son édition Pro.
Jusqu’ici, l’édition Express était déjà un bel outil, qui est maintenant complété par :

  • L’ouverture de plusieurs documents de plan de requête (fichiers .sqlplan, .queryanalysis, .pesession)
  • L’historique et ses commentaires au fur et à mesure du processus d’optimisation
  • L’ouverture des graphes décrivant un deadlock (fichiers de type .xdl)
  • La comparaison de l’impact des index pour une même requête
  • L’aide à l’analyse de la distribution des valeurs dans un objet de statistique

Bonne analyse de plans !

sys.dm_exec_query_profiles : la DMV qui détaille les noeuds d’un plan d’exécution réel

La lecture du plan d’exécution réel peut s’avérer être une tâche laborieuse, surtout lorsque le plan contient de nombreux opérateurs ou nÅ“uds.

Introduite avec SQL Server 2014, la vue de gestion dynamique sys.dm_exec_query_profiles nous permet de voir quel(s) nÅ“ud(s) d’un plan d’exécution réel consomme le plus de ressources et /ou de temps. C’est donc un formidable outil qui peut faire largement diminuer la recherche des points noueux d’une requête à l’étude.

Lire la suite

Comment voir le contenu complet d’une colonne de type [n]varchar(max)

S’apercevoir, alors que l’on vient de coller une valeur d’une colonne du résultat d’une requête dans SQL Server Management Studio, que le buffer est limité, est quelque peu frustrant.
On peut parfois dépasser cette limite en se rendant dans le menu Tools > Options > Query Results > SLQ Server > Results to Grid :

Mais souvent, cela ne suffit pas. Voyons comment contourner ce petit problème :

Lire la suite

Mesurer et remédier à la fragmentation des index fulltext

La fragmentation et la défragmentation des index relationnels est un sujet connu sur lequel la littérature ne manque pas. Mais on voit bien moins souvent des lignes sur les index fulltext, donc la fragmentation élevée nuit de la même façon aux performances des requêtes que leurs cousins relationnels.

Voici donc une requête qui permet de mesurer la fragmentation des index fulltext, et qui génère l’instruction de maintenance adéquate, le cas échéant :

Lire la suite

Scripter les index fulltext

Voici une petite requête qui permet d’extraire le script de création des index fulltext d’une base de données. Il génère également l’instruction de création du catalogue (CREATE FULLTEXT CATALOG) auquel chaque index est lié. Donc si l’on a plusieurs index attachés au même catalogue, le script teste si le catalogue existe déjà.

Lire la suite

La transformation Pivot avec SQL Server Data Tools (ex SSIS) : attention à l’ordre !

SQL Server Data Tools (SSDT) est le nouveau nom de SQL Server Integration Services (SSIS).
Je ne suis pas un supporter des opérateurs T-SQL PIVOT et UNPIVOT, pour la simple et bonne raison qu’il ne sont pas ensemblistes, et servent seulement à la présentation de données. Néanmoins, on conçoit aisément que ce sont des opérateurs utiles pour du chargement de données, surtout dans un environnement d’entrepôt de données. J’ai donc décidé de savoir ce qu’il faut faire sous SSDT pour « pivoter » un jeu de données.
Lire la suite