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

SQL Firebird Discussion :

Création d'un index sur un VARCHAR 2048 ?


Sujet :

SQL Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Par défaut Création d'un index sur un VARCHAR 2048 ?
    Bonjour,

    J'ai un champ dans une table qui est de type VARCHAR 2048.

    Je l'utilise enormément pour effectuer des grosses requêtes, c'est pourquoi je souhaiterai l'indéxer.

    Cependant, l'indexation d'un VARCHAR d'une taille de 2048 semble impossible.

    Comment puis-je faire ?

    Merci,
    ZiP

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Par défaut
    tout dépend du jeu de caractère utilisé
    avec FB2, un index sur un varchar(2048) avec character set None est possible

    maintenant peut être qu'une autre solution est possible avec un autre champs, tout dépend de ce qui est stocké dans ce champ et si on peu en extraire quelque chose de significatif dans un autre champs plus petit
    et aussi des recherches qui sont faites sur ce champ
    j'imagine mal des recherches exactes dessus, si c'est des commence par, alors un index sur un autre champ maintenu par un trigger et qui ne comprendrai alors que les x premiers caractères peu aider

  3. #3
    Membre éprouvé
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Par défaut
    Salut,

    Voici la ligne de création de mon champ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    URL VARCHAR(2048) CHARACTER SET WIN1251 NOT NULL COLLATE WIN1251);
    Je peux changer le CARACTER SET de quelle manière ?

    Merci,
    ZiP

  4. #4
    Membre Expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Par défaut
    Url Varchar(2048) Character Set None

  5. #5
    Membre éprouvé
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Par défaut
    Bonjour,

    Voici ma table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    CREATE TABLE STATISTIQUES (
      ID INTEGER NOT NULL,
      UTILISATEUR VARCHAR(255) CHARACTER SET NONE NOT NULL COLLATE NONE,
      MACHINE VARCHAR(255) CHARACTER SET NONE NOT NULL COLLATE NONE,
      IP VARCHAR(15) CHARACTER SET NONE NOT NULL COLLATE NONE,
      HORAIRE DATE NOT NULL,
      URL VARCHAR(2048) CHARACTER SET NONE NOT NULL COLLATE NONE);
     
     
    ALTER TABLE STATISTIQUES ADD PRIMARY KEY (ID);
     
     
    SET TERM ^ ;
     
    CREATE TRIGGER BI_STATISTIQUES_ID FOR STATISTIQUES
    ACTIVE BEFORE INSERT
    POSITION 0
    AS
    BEGIN
      IF (NEW.ID IS NULL) THEN
          NEW.ID = GEN_ID(STATISTIQUES_ID_GEN, 1);
    END^
     
    SET TERM ; ^
    Je ne peux toujours pas créer mon index sur mon champ URL de type VARCHAR(2048).

    J'utilise la dernière version de Firebird disponible.

    Merci pour votre aide,
    ZiP

  6. #6
    Membre Expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Par défaut
    il faut lire un peu la doc livrée
    252-byte index length limit is gone
    A. Brinkman
    New and reworked index code is very fast and tolerant of large numbers of duplicates. The old aggregate key
    length limit of 252 bytes is removed. Now the limit depends on page size: the maximum size of the key in bytes
    is 1/4 of the page size (512 on 2048, 1024 on 4096, etc.)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pertinence d'un index sur des VARCHAR
    Par sekine dans le forum Langage SQL
    Réponses: 3
    Dernier message: 19/01/2010, 18h17
  2. Réponses: 3
    Dernier message: 01/04/2009, 10h47
  3. Création d'un index sur une grosse table
    Par Jester dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 02/04/2008, 12h44
  4. Création d'index sur tables avec 400000 rows
    Par Poisson59 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/07/2007, 13h53
  5. Création d'index sur un TTable
    Par bencot dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/03/2005, 13h23

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