Blog

Différences entre tables temporaires et variable table : ##temp, #temp, @temp… ou CTE ?


Question récurrente : Quelles différences entre une table temporaire ##temp, #temp (et non, ça n’a rien à voir avec un hashtag), une variable table @temp et une CTE (même si…

ElasticSearch VS SQL Server Full-Text


ElasticSearch permet de faire de la recherche avancée et de personnaliser l’indexation de manière très poussée. Mais qu’en est-il depuis SQL Server pour de la recherche avancée ? La fonctionnalité…

Groupe de disponibilité distribué, nouveauté SQL Server 2016


Une des nouveautés sous SQL Server 2016 est la possibilité de regrouper plusieurs AG (groupe de disponibilité) sous l’appellation d’un groupe de disponibilité distribué pour couvrir les scénarios suivants :…

24 heures Hop francophone : 29 et 30 juin 2017


Les 24 heures Hop francophone, c’est pour bientôt ! Les 29 et 30 juin 2017, vous aurez droit à un concentré sur la DATA Microsoft, mais pas que, servi par…

Kitchen Sink à proscrire !


Kezako « Kitchen Sink » en T-SQL ? C’est une technique qui consiste à essayer de remplir le plus de conditions possibles dans une requête. Cela se traduit par la répétition de…

Publier un rapport Power BI On-Premise, oui mais…


Mieux vaut tard que jamais, on peut enfin publier des rapports Power BI On-Premise (Technical Preview), du moins sous certaines conditions… On n’a pas nécessairement envie d’exposer ses données et…

Industrialisation Reporting Services


Pour l’industrialisation des tâches d’administration Reporting Services, on peut exploiter les Web Services Reporting Services via Powershell/C#, la méthode la plus viable. Dans certains cas, on peut procéder à une…

Retain CR/LF : Retours chariot et sauts de ligne dans SQL Management Studio 2016


Si l’idée vous prend de générer dynamiquement une chaine de caractère ou un script contenant des retours chariot CHAR(13) et sauts de ligne CHAR(10) depuis SQL Management Studio 2016, sachez…

Scripter la création d’une base données


Contexte
Dernier projet en date : un client me demande de transformer un mastodonte en « basounette », autrement dit de faire de l’échantillonnage de données afin de permettre à chaque développeur de…

Quelques trucs à savoir sur Invoke-Sqlcmd


Très pratique pour l’industrialisation, Invoke-Sqlcmd est une applet de commande Powershell qui exécute des scripts T-SQL et XQuery, ainsi que les commandes prises en charge par l’utilitaire sqlcmd. Invoke-Sqlcmd est…

Exécuter un script sur toutes les bases de données d’une instance


La procédure stockée système sp_MSforeachdb permet d’exécuter un script sur toutes les bases  de données d’une instance. Le nom de la base correspond au point d’interrogation. Dans l’exemple ci-dessous, on…

Exécuter un script sur toutes les tables d’une base de données


La procédure stockée système sp_msforeachtable permet d’exécuter un script sur toutes les tables d’une base de données. Le nom de la table correspond au point d’interrogation. Typiquement, si l’on souhaite…

Scripter la création et suppression des contraintes (ex : FK)


SQL Mangament Studio ne permet pas de générer un script pour la création et suppression des contraintes seules. Néanmoins, on peut avoir recours à d’autres solutions telles que l’assembly SMO.
SMO…

Scripter la création et suppression des index


SQL Mangament Studio ne permet pas de générer un script pour la création et suppression des index seuls. Il existe plusieurs alternatives pour outrepasser cette limitation :
SMO via Powershell (ou…

Configurer Database Mail avec Gmail


En cas d’échec sur un job SQL ou quand un seuil de performance est atteint, il peut être utile de recevoir une alerte mail pour être proactif. Plus simplement, pour…

XEvent : Requêtes longues


Lorsque des lenteurs sont détectées sur une instance ou à des fins proactives, il peut être intéressant de consigner ponctuellement les requêtes qui excédent un certain temps d’exécution. Ces requêtes…

XEvent : Deadlock


Un deadlock se produit lorsque deux processus (ou plus) se bloquent mutuellement de façon permanente. Dans ce cas, chaque processus positionne un verrou sur une ressource que le ou les…

XEvent : Processus bloqués et bloquant


Une requête peut être mise en attente dans le cas où un autre process monopolise déjà la même ressource (RID, Key, Page, etc.). La durée du blocage peut-être plus ou…

Mode de secours SQL Server (DAC)


Microsoft SQL Server fournit une connexion administrateur dédiée (DAC : Dedicated Admin Connection), plus simplement un mode de secours. Cette connexion permet à un administrateur d’accéder à une instance active…

sp_whoisactive : Processus actifs sur une instance SQL Server


La procédure stockée sp_who2 est nativement disponible sur une instance SQL Server pour consulter la liste des processus actifs sur une instance SQL Server. Bien qu’elle ne permette pas toujours…

sp_change_users_login : Utilisateurs orphelins


En cas de restauration d’une base de données sur une autre instance SQL Server et bien que les logins soient présent sur celle-ci, il est  impossible de se connecter sur…

Optimize for ad hoc workloads : Requêtes Ad Hoc et valeurs littérales


Dans un article dédié au tuning d’instance, l’activation de l’option « optimize for ad hoc workloads » a été évoquée. Nous allons mesurer l’impact de cette option sur le moteur.
Démo 1 :…

Tuning d’instance SQL Server


Sur une instance SQL Server 2016, il y a près de 80 options. Soyons pragmatique, il y a au final une dizaine d’options à prioriser. Pour afficher la configuration avancée…

Parallélisme SSIS par package


Comment prioriser et paralléliser l’exécution de packages d’un projet SSIS stocké dans le catalogue ? Dans cet article, nous allons détailler une méthode de parallélisme SSIS qui soit paramétrable pour…

sp_help_revlogin : Copie des logins d’une instance à l’autre


La procédure stockée sp_help_revlogin permet de faire une copie des logins d’une instance SQL sur une autre, tout en conservant les mots de passe et SID.

Suivre la procédure Microsoft disponible…

L’analyse prédictive avec Cortana Analytics


Cortana Analytics, Kezako ?
10 juin, j’assiste à l’atelier Cortana Analytics chez MS. C’est un ensemble de services dont la finalité est de faire de l’analyse prédictive depuis Azure, en d’autres…

Keyser Söze au SQLSaturday


Le SQLSaturday a pris fin hier après un mois de labeur côté GUSS et oui ça s’organise ! Mais il y a bien heureusement les volontaires sur qui on peut compter,…

Power Options : Surconsommation du CPU d’une instance SQL Server


Contexte
De la réplication transactionnelle a été mise en place pour de la répartition de charge en lecture entre 5 abonnés à l’arrivée. Curieusement, dans l’outil de monitoring, on observe qu’un…

Générer un jeu de données aléatoire


Pour des tests, il peut y avoir la nécessité de disposer d’un jeu de données factices pour faire grossir artificiellement une base ou autre. La requête ci-dessous permet de générer…

Purger le fichier de transaction d’une base en AlwaysOn ou en Miroir


Une problématique récurrente est comment purger le fichier de transaction d’une base en AlwaysOn ou en Miroir, dont on ne maîtrise plus la croissance en raison du fait qu’il soit…

Parallélisme Powershell pour accélerer vos traitements


L’industrialisation et la performance sont deux sujets qui reviennent souvent dans l’informatique. Voici la base d’un script Powershell permettant de paralléliser l’exécution d’une tâche plutôt que de rester en mode séquentiel.…

Réplication – Initialisation d’un abonné par sauvegarde/restauration


Dans cet article, nous allons créer une publication transactionnelle et lancer l’initialisation d’un abonné par sauvegarde/restauration à partir d’un autre abonné utilisé comme référence. Cette méthode est appropriée dans les…

Maintenance des bases de données


Scripts d’Ola Hallengren
Tout ou partie de la maintenance des bases de données peut reposer sur les scripts d’Ola Hallengren. Elle offre plusieurs avantages :

– Très simple à déployer
– Paramétrable, ex :…

DELETE ou UPDATE en masse (patterns)


Contexte
Le temps de maintenance des index/stats est exponentiel avec plus récemment une fâcheuse tendance à déborder sur les plages de travail. Quand on y regarde de plus près, il y a une table…

Réplication – Initialisation d’un abonné par sauvegarde avec édition de la réplication


Dans cet article, nous allons créer une publication transactionnelle, initialiser un abonné à partir d’une sauvegarde et enfin permettre l’édition de la réplication. Nativement, il n’est pas possible de modifier…

SQL Saturday Paris 2015 – Optimisation de requête


Après un webcast sur l’optimiseur de requête plutôt théorique, on passe à la pratique sur la base du plan d’exécution dans cette session que j’ai eu la chance d’animer une…

Optimiseur de requête


L’optimiseur de requête est le composant en charge de trouver le moyen le plus efficace pour exécuter une requête. Lors de ce webcast, nous allons décortiquer le processus d’optimisation et…

In-Memory (Hekaton)


Voici la première version du moteur In-Memory alias Hekaton : pour résumer, c’est une moto qui va super vite mais avec laquelle, on peut juste faire le tour du pâté…

Industrialisation d’audit


Le but de cette session co-animée avec David Barbarin lors des Journées SQL Server 2014, est de donner une méthodologie pour industrialiser l’audit d’instance SQL Server à base de script…

Trucs et astuces SQL Management Studio


Qui a dit qu’il ne fallait pas utiliser d’interface en général ? SQL Management Studio est un client très riche qui regorge de fonctionnalités qui vous permettront de gagner incontestablement…

Resource Governor


Pour répondre à la problématique du voisin bruyant, Resource Governor constitue la solution pour rationaliser l’utilisation de vos ressources au niveau instance : CPU, mémoire et IO (nouveauté SQL Server…

AlwaysOn


Une solution hybride entre le miroir et le cluster de basculement SQL server (FCI), découvrez les nouveautés AlwaysOn sous SQL Server 2014 et créez un groupe de disponibilité (quorum, file…

error: