IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

6 petits articles pour tous les goûts


Sujet :

Développement SQL Server

  1. #1
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut 6 petits articles pour tous les goûts
    Bonjour,

    mettant de l'ordre dans mes scripts, je me suis fendus de 7 petits articles dans mon blog... Il y en a pour tous les goûts...

    1) Comment rendre le LIKE '%toto%' efficace ou les index rotatifs...
    Tout le monde sait qu'un index ne peut être utilisé que si le prédicat de recherches est "sargable" ("cherchable en" français...). Autant l'optimiseur de SQL Server va prendre en compte l'index sur une recherche comme LIKE 'toto%' ouencore sur le LIKE '%toto' si l'on utilise une colonne calculée REVERSE indexée et que l'on fait la recherche à l'envers (LIKE 'otot%' sur la colonne avec la chaine inversée) autant il n'est pas possible que l'index soit utilisé en recherche pour un LIKE '%toto%'... sauf à recourir aux index rotatifs.... À lire donc !

    2) Comment calculer au plus juste une "bounding box" pour l'indexation spatiale géométrique ?
    Les index spatiaux sur une colonne de type geometry doivent impérativement être bornés afin de délimiter l'espace d'indexation, car il serait difficile d'indexer l'infini (le plan euclidien est infini par nature) et à ce sujet, Woody Allen, disait, "l'infini c'est long, surtout vers la fin..." (1); Pour pallier à cet inconvénient, voici une formule qui calcule au plus juste l'enveloppe rectangulaire de la bounding box la plus serrée possible dans une collection d'objet géométriques, mais vous pouvez y rajouter votre propre marge...

    3) Déblocage d’une instance SQL Server bloquée
    Combien de fois ais-je vu les développeurs et certains pseudo DBA arrêter SQL Server pour débloquer des processus bloqués, alors qu'il suffit simplement de "tuer" la bonne session, ce qui ne provoque aucune effusion de sang, mais juste une annulation de la transaction en cours. Encore faut-il savoir quelle est la bonne session et cet article à pour but de vous fournir les moyens de le savoir !

    4) Génération d’un « rétro script » d’insertion
    Comme je trouve l'outil de SQL Server assez mal fait de ce point de vue, je me suis permis de développer mon propre outil pour générer les scripts SQL d'insertion des données dans les tables. Ceux qui postent ici n'auront plus d'excuses pour nous fournir un joli scripts de commandes SQL INSERT afin de donner un jeu d'essais pour qu'on les aident.

    5) Un "audit trail" générique (ou comment pister les mises à jours des tables que l'on souhaite).
    Ce type d'audit est destiné à pister les événements qui se passe dans un système. Dans une base de données, il est destiné à vérifier ce qui s'est passé, notamment sur le plan des valeurs avant ou après la modification. Il peut à la fois servir pour la sécurité (qui à fait quoi ?), comme sur le plan fonctionnel (pourquoi cette valeur ?, À quelle date un tel changement ?...)

    6) Métadonnées des index
    Qui n'a un jour rêvé de voir la procédure sp_helpindex doté de nouvelles fonctionnalités tel que montrer la liste des colonnes INCLUDE ou l'éventuel filtre ? Cette mouture particulière permet de voir les principales métadonnées des index, mais sur tous les index, pas seulement les index transactionnels (BTree), mais aussi les index spatiaux, XML, FullText et columnstore...

    Bonne lecture et merci pour vos commentaires !


    (1) en fait “Eternity is really long, especially near the end”...
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  2. #2
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Bonjour,

    Merci pour tous ses articles.

    Il ya juste une correction de lien à faire.
    Le lien de "Un "audit trail" générique (ou comment pister les mises à jours des tables que l'on souhaite)."
    ne pointe pas sur le bon article. Il envoie vers le « rétro script » d’insertion.
    au lieu de
    http://blog.developpez.com/sqlpro/p1...rail-generique.
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    Merci c'est corrigé !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    1 616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 616
    Points : 3 965
    Points
    3 965
    Par défaut
    Merci Frédéric

    Ca fait des années que je te lis, je crois que j'ai déjà eu droit à des réponses de ta part il y a plus de 15 voir 17 ans dans les newsgroups consacrés au SQL, et bon dieu je ne sais pas si j'ai appris plus de quiconque que de toi.
    Je te voue une réelle admiration, te lire est toujours passionnant

    Ces index rotatifs risquent de m'être utiles dans les jours à venir, c'est génial
    Émotion
    Infantilisation
    Culpabilisation

    Christophe Alévèque - 18 Mars 2021

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 561
    Points
    38 561
    Billets dans le blog
    9
    Par défaut Modeste contribution
    Bonjour

    Merci pour ces excellents articles, comme à l'accoutumée
    Je mets en PJ une version corrigée du 1er article, correction qui ne concerne que quelques fautes de frappe, rien sur le fond
    Les modifs apparaissent en mode révision dans le texte

    Merci encore

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par fredoche Voir le message
    Merci Frédéric

    Ca fait des années que je te lis, je crois que j'ai déjà eu droit à des réponses de ta part il y a plus de 15 voir 17 ans dans les newsgroups consacrés au SQL, et bon dieu je ne sais pas si j'ai appris plus de quiconque que de toi.
    Je te voue une réelle admiration, te lire est toujours passionnant

    Ces index rotatifs risquent de m'être utiles dans les jours à venir, c'est génial
    C'est intéressant sur des très gros volume et plus encore pour de la recherche avec corrections (par exemple uqand une serponne saisie mal les most... ! ;-))

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Bonjour

    Merci pour ces excellents articles, comme à l'accoutumée
    Je mets en PJ une version corrigée du 1er article, correction qui ne concerne que quelques fautes de frappe, rien sur le fond
    Les modifs apparaissent en mode révision dans le texte

    Merci encore
    C'est fait merci !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  8. #8
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Merci beaucoup Frédéric pour ces articles.

    Juste une remarque concernant les index rotatifs. Tu précises à juste titre qu'il faut que la colonne MOT_MOT soit sensible aux accents, et pas à la casse, mais tu utilises la collation French_BIN qui est sensible aussi bien aux accents qu'à la casse. Il faudrait peut-être préciser que le côté insensible à la casse est obtenue via l'utilisation de la fonction LOWER dans les procédures d'indexation et de recherche. Qu'en penses-tu ?
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par François DORIN Voir le message
    Merci beaucoup Frédéric pour ces articles.

    Juste une remarque concernant les index rotatifs. Tu précises à juste titre qu'il faut que la colonne MOT_MOT soit sensible aux accents, et pas à la casse, mais tu utilises la collation French_BIN qui est sensible aussi bien aux accents qu'à la casse. Il faudrait peut-être préciser que le côté insensible à la casse est obtenue via l'utilisation de la fonction LOWER dans les procédures d'indexation et de recherche. Qu'en penses-tu ?
    Tu as tout à fait raison !

    Et il est bien plus performant d'utiliser une collation binaire qu'une collation sensible à la casse ou aux accents et à fortiori aux deux !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  10. #10
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Et il est bien plus performant d'utiliser une collation binaire qu'une collation sensible à la casse ou aux accents et à fortiori aux deux !
    Tout à fait. Il est peut bon de le préciser aussi, car sinon, on pourrait être tenté d'utiliser une collation style SQL_Latin1_General_CP1250_CI_AS.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/09/2005, 11h50
  2. TEdit numérique pour tous les claviers
    Par totofweb dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/06/2004, 11h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo