samedi 15 janvier 2022

Datafrogs : les very LARGE databases (VLDB)

Aujourd'hui, c'était les datafrogs, une journée de conférences organisée par notre ami Rudi Bruchez.

J'ai eu le plaisir de vous présenter une session sur "les bases de données volumineuses" ou VLDB.

En démarrant par un petit sondage auprès des spectateurs :

La vidéo est en ligne !

Lire la suite...

mardi 14 septembre 2021

Always On basic : forcer plusieurs groupes de disponibilité à basculer

Avec les groupes de disponibilité  "basiques" en édition standard, chaque base a son propre groupe de disponibilité. Il n'est donc en principe pas possible de basculer un ensemble de bases de données comme on peut le faire avec une édition Enterprise.

Cela pose un problème majeur lorsque des applications ou des requêtes nécessitent la présence de plusieurs bases sur le même serveur pour fonctionner : requêtes multi-bases...

Une solution, bancale il est vrai mais qui peut dépanner, consiste à configurer plusieurs groupes, mais :

  • Un seul groupe a un listener, auquel se connecteront les applications
  • Si il y a bascule d'un seul groupe, il faut forcer le basculement de tous les autres : ainsi l'application retrouvera toutes les bases dont elle a besoin une fois l'opération effectuée.

Cet article vous propose de mettre en place cette configuration.

Lire la suite...

dimanche 8 août 2021

Activer l'audit SQL Server

Par les temps qui courent, la sécurité des accès à nos serveurs devient une forte préoccupation. On veut donc savoir qui tente de se connecter,  échoue ou réussit.

Une configuration courante consiste à enregistrer les échecs de connexion dans l'errorlog de SQL Server. Ce qui est dommage, c'est la pollution que cela génère dans ce journal, encore bien pire si on veut aussi enregistrer les connexions réussies.

Et si nous activions l'audit de SQL Server ? Plutôt que d'enregistrer tout cela dans l'errorlog, on oublie qu'il existe cette fonctionnalité bien plus puissante, qu'on pourrait presque activer par défaut sur tout serveur un peu sensible.

Cet article vous permet de mettre en place cette configuration.

Lire la suite...

lundi 12 juillet 2021

Changer de nom de serveur SQL

Une question fréquemment posée : quelles opérations sont nécessaires pour changer le nom d'un serveur SQL Server ?

Voici quelques détails sur le sujet, ainsi que la procédure que j'utilise lorsque je déploie des machines "généralisées" avec sysprep, sur lesquelles SQL Server est déjà installé.
 

Lire la suite...

mercredi 16 juin 2021

Un petit aperçu du fonctionnement de l'optimiseur

Le composant qui détermine le plus la performance d’un SGBDR est son optimiseur. Comme vous le savez sûrement déjà, le moteur de base de données adapte son plan d'exécution au contexte : il fait cela grâce à une estimation des cardinalités, ce qui lui permet de savoir approximativement quel nombre de ligne serait renvoyé pour chaque prédicat ou jointure de la requête.

Dans cet article, nous allons examiner son fonctionnement avec une requête simple.

Lire la suite...

dimanche 4 avril 2021

Ménage de printemps

Il y a quelques tâches ménagères d'administration qui sont trop souvent oubliées : le nettoyage des journaux et des historiques !
Si ce n'est pas fait, on finira par se retrouver avec :

  • Une base de données msdb géante
  • Des problèmes de temps de réponse dès qu'il faut supprimer une base de données (avec son historique de backup géant...)
  • De mauvaises performances pour interroger l'historique des travaux ou des sauvegardes
  • Des milliers de fichiers dans le répertoire "log" de SQL Server
  • ...

Voici quelques requêtes, nous en profitons pour explorer quelques nouvelles DMV et procédures stockées étendues...

Lire la suite...

mardi 16 février 2021

SSMS InfoReports v7

La nouvelle version (v7) de mes custom reports pour SQL Server Management Studio est disponible sur Github : https://github.com/datafly/SSMSInfoReports

Elle intègre maintenant 13 rapports, dont les derniers en date qui étaient présentés ici : Always On AG et Jobs Planning History.

Tous les rapports ont fait l'objet de diverses améliorations.

Bon téléchargement !

jeudi 10 décembre 2020

Nouvelle vidéo : Data Masking avec SQL Server

Si vous utilisez SQL Server et vous vous sentez concerné par la protection des données personnelles (RGPD), regardez cette vidéo.
Vous verrez ici que la fonctionnalité de Dynamic Data Masking qui existe dans SQL Server, bien que facile à mettre en oeuvre, est facilement contournable par un utilisateur.
Et pour compléter, il y a aussi une petite démo de Static Data Masking avec l'outil Red-Gate Data Masker. Là c'est du sûr, mais c'est du lourd...

jeudi 10 septembre 2020

La vidéo du Power Saturday 2020

La video de ma présentation au Power Saturday 2020 est maintenant disponible : SQL Server 2019, de l'intelligence sous le capot. Le Power Saturday s'est tenu le 6 juin dernier, entièrement en virtuel cette année (Covid oblige).

Lors de cette session assez avancée, co-présentée par mon collègue Frédéric Brouard et moi-même, nous avons voulu montrer les améliorations de l'optimiseur de SQL Server dans ses versions 2017 et 2019. Et on y voit qu'il y gagne de l'intelligence, de quoi vous donner à réfléchir pour upgrader vers les dernières versions si ce n'est pas déjà fait. Les fonctionnalités suivantes sont expliquées et démontrées :

  • encapsulation des fonctions scalaires
  • feedback d'allocation mémoire
  • mode batch en row store
  • compilation différée des variables tables
  • jointures adaptatives
  • paramétrage automatique

La vidéo dure une heure, prévoyez une bière et des cacahuètes...

Le lien vers la présentation en pdf

Le lien vers les scripts (les bases de données utilisées sont trop volumineuses pour être disponibles en ligne)

samedi 25 juillet 2020

SSMS Custom Report : job history planning

Un nouvel ajout à ma collection de custom reports pour SSMS : l'historique des jobs de l'agent SQL sous forme de planning sur 24 heures, disponible ici (nouvelle version du 15/01/2021).

Il est bien utile d'avoir un outil visuel pour identifier rapidement quels sont les jobs particulièrement fréquents ou particulièrement longs, ou encore de savoir quels sont les jobs planifiés aux mêmes horaires. SSMS ne nous offre nativement rien de tel...

Pour utiliser le rapport dans SSMS, faire un clic droit sur l'instance SQL dans l'explorateur d'objets, menu contextuel "Rapports", puis "Rapports personnalisés", ici ouvrir le fichier .RDL.

Le rapport interroge la table msdb..sysjobhistory : n'oubliez pas que cette table doit être purgée régulièrement sinon elle risque d'enfler indéfiniment (et les performances du rapport s'en ressentir). La procédure stockée sp_purge_jobhistory permet d'effectuer cette opération, généralement une rétention de 30 jours est suffisante dans la plupart des cas.

Le rapport est plutôt compact, le but était d'avoir une vision globale sur 24 heures. Les jobs réussis s'affichent en vert, ceux en échec en rouge. En passant la souris sur la plage d'exécution d'un job, un tooltip s'affiche avec quelques informations. Il y a aussi un lien sur le nom de chaque job qui permet d'atteindre un rapport détaillé, cela si vous avez installé les autres custom reports que je propose.

Pour rappel, ces autres rapports sont disponibles au téléchargement sur github, et il y a en plus le rapport sur les groupes de disponibilité Always On, accessible ici.

J'ai l'intention de repackager tout cela dans une future version 7.0 : y intégrer les nouveaux rapports ainsi que les dernières corrections que j'ai faites sur les anciens.

Bonne exploration des custom reports...!

- page 4 de 19 -