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

MS SQL Server Discussion :

Fonction CONTAINS de SQL SERVER 2008


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 3
    Par défaut Fonction CONTAINS de SQL SERVER 2008
    Bonjour à tous,
    J’ai une table (environ 20 millions de lignes) MS SQL Server 2008 à partir de laquelle je veux effectuer des recherches sur une clé de texte intégral.
    • La requête LIKE,… prend énormément de temps.
    • Avec la requête « contains() » , le temps de réponse est à peu de 8s.
    Mais elle ne fait pas la recherche dans tous l’index.
    Ex :
    Index : 002236551395800223660301182013-06-0316:16:2210MOCall
    Si le numéro recherché correspond au 0022365513958, (début de l’index) pas de soucis.
    Mais si on doit rechercher le 0022366030118, (placé à l'intérieur de l’index) il ne le retrouve pas.
    La requête :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM FM20130531 
    where contains (cle_index ,' " 0022365513958*" ', language 'french')

    donne le bon résultat mais

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM FM20130531 
    where contains (cle_index ,' "*0022366030118*" ', language 'french')

    ne retrouve pas le numéro 0022366030118, dans l’index désigné.

    merci d'avance pour votre aide qui sera si précieuse.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    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 998
    Billets dans le blog
    6
    Par défaut
    C'est parfaitement normal. C'est normatif et conçu comme tel.

    Une telle recherche d'un mot à l'intérieur d'un autre n'est pas très courante et nécessite des algorithmes particulier utilisant des index rotatifs rarement implémentés dans les SGBDR (ni d'ailleurs ailleurs...)

    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/ * * * * *

Discussions similaires

  1. [WD17] Fonction contains en sql server sous windev
    Par DJIRE dans le forum WinDev
    Réponses: 4
    Dernier message: 05/06/2013, 20h22
  2. Fonction Replace SQL Server 2008
    Par remi.journet dans le forum Développement
    Réponses: 4
    Dernier message: 21/06/2011, 07h20
  3. Réponses: 4
    Dernier message: 11/11/2010, 10h39
  4. Fonction ROUND dans sql server 2008
    Par aya02 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/06/2010, 16h55

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