Vérifier la validité d’un SIRET – Algorithme de Luhn

Lors d’un chargement massif de données et/ou d’une migration, il est possible que la qualité des données soient altérées. Il faut alors tester leur qualité et valider chaque écart. Parmi ceux-ci, on peut trouver les numéro SIRET, qui permet l’identification d’un établissement ou d’une entreprise Française.

Cet identifiant numérique est constitué de 14 chiffres, et est articulé en trois parties :

  • le SIREN
  • le Numéro Interne de Classement, à quatre chiffres : c’est l’ordre de création de l’établissement par l’entreprise Française
  • une clé de contrôle, constituée d’un seul chiffre

Ce dernier est calculé à l’aide de l’algorithme de Luhn. Cet algorithme est aussi utilisé pour valider les numéros de carte bleue, et de nombreux identifiants distribués par les administrations de beaucoup de pays. Nous allons nous en servir pour vérifier la validité de SIRETs en l’implémentant spécifiquement pour ce type d’identifiant.

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

Capture manuelle de plans de requête

Plusieurs des participants au forum SQL Server de Développez demandent comment optimiser une requête : ce billet leur est particulièrement destiné, puisqu’une optimisation de requête ne peut réellement se faire sans son plan d’exécution, le mieux étant aussi d’avoir la sortie de l’option de session SET STATISTICS IO, TIME ON, et le DDL (ordre CREATE TABLE) de la table et de ses index.
Lire la suite

Comment remplacer les espaces et tabulations en fin de lignes dans les modules de code sans trop d’effort ?

SQL Server Management Studio dispose d’un outil de recherche et de remplacement de texte, qui permet notamment de travailler avec des expressions régulières. Il m’arrive souvent dans des tâches de refactoring de trouver un très grand nombre d’espaces ou de tabulations à la fin des lignes, et je suis bien plus passionné par optimiser et standardiser le code que par supprimer ce type de micro-boulettes.

Lire la suite

Où est passé le panneau SSIS toolbox dans SSDT-BI 2013 ?

Ce panneau est ouvert automatiquement à l’ouverture d’un projet SSIS. Supposons maintenant que l’on ait fermé ce panneau après avoir ajouté un projet SSRS à la solution : à l’ouverture suivante du projet ou de SSDT-BI, le volet n’est plus là ! Pour le débutant que je suis, j’ai donc intuitivement ouvert le menu VIEW, mais ne l’y trouvais pas :

Lire la suite

Où trouver la définition des objets et attributs de plans de requêtes ?

Après quelques mois d’absence et avoir assisté au Microsoft MVP Summit et au PASS Summit 2014, et m’être enfin replongé dans un peu de lecture dense sur SQL Server, voici quelques liens utiles en ce qui concerne les plans de requête :

  • Définition des plans XML : schémas XSD : expose le schéma XSD des plans de requête XML, ce qui permet de trouver les améliorations au niveau de l’optimiseur en comparant le schéma de deux versions de SQL Server
  • Guide de référence des opérateurs Showplan : une liste exhaustive de tous les opérateurs que l’on peut trouver dans un plan de requête graphique
  • Une autre liste, publiée par Fabiano Amorim, avec la liste des opérateurs de plan d’exécution graphique les plus communs, expliquant leur fonctionnement, et pourquoi ils sont choisis par l’optimiseur de requêtes

Bonne lecture !