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

Discussion: Lenteur de sqlite

  1. #1
    Membre actif
    Profil pro
    maçon
    Inscrit en
    novembre 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : maçon

    Informations forums :
    Inscription : novembre 2004
    Messages : 185
    Points : 245
    Points
    245

    Par défaut Lenteur de sqlite

    Bonjour,
    J'ai créé une base de données sous sqlite 3.3.8 d'une taille environ de 40 Mo.
    La plus lourdes des tables fait 110 000 enregistrement avec une dizaine de champs.
    J'ai mis des index et tout et tout
    Or qd je fais des requêtes les temps de réponses sont extrement long.
    J'ai donc migré ma base sous mysql , et là surprise les temps de réponses sont excellents !!! 16s sous mysql contre 3mn30 sous sqlite.
    Je travaille sous windows 2000 avec un ordi doté de 392 Mo de RAM et d'une cpu de 700mhz .
    Quelqu'un pourrait-il m'aider à mieux configurer sqlite pour avoir des temps réponses acceptables pour mes requêtes.
    d'avance merci
    Olivier

  2. #2
    Membre régulier
    Inscrit en
    juillet 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : juillet 2006
    Messages : 75
    Points : 76
    Points
    76

    Par défaut

    Sqlite utilise par défaut un mode d'écriture sécurisé qui ne crash pas la base même si une coupure de courant arrive malencontreusement au mauvais moment. Le mode d'écriture peut être moins sécurisé pour augmenter la vitesse et retrouver des performances dignes de ce nom. Il faut changer le paramètre PRAGMA synchronous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // mode normal rapide
    sqlite3_exec(pDB, "PRAGMA synchronous = OFF;", 0, 0, &szErr);
    //mode sécurisé plus lent
    sqlite3_exec(pDB, "PRAGMA synchronous = FULL;", 0, 0, &szErr);

    pour plus de détails : http://www.sqlite.org/pragma.html

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    mai 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2007
    Messages : 42
    Points : 20
    Points
    20

    Par défaut

    Citation Envoyé par SERTNM
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // mode normal rapide
    sqlite3_exec(pDB, "PRAGMA synchronous = OFF;", 0, 0, &szErr);
    Merci pour l'astuce, je passe de 30 sec à 3 secondes !!!

  4. #4
    Futur Membre du Club
    Inscrit en
    décembre 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : décembre 2005
    Messages : 11
    Points : 9
    Points
    9

    Par défaut

    merci, ça va 50 fois plus vite

  5. #5
    Candidat au Club
    Homme Profil pro
    artiste lyrique
    Inscrit en
    novembre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : artiste lyrique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : novembre 2011
    Messages : 6
    Points : 4
    Points
    4

    Par défaut

    Mouais, quelques années plus tard, la syntaxe a certainement changé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $db=  new SQLite3('mabase_db');
    $db->exec("PRAGMA synchronous = OFF;")or die($x->lastErrorMsg());

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    août 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : août 2011
    Messages : 59
    Points : 39
    Points
    39

    Par défaut

    $
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    db->exec("PRAGMA synchronous = OFF;")
    Magique !!!! Merci mille fois armenak

Discussions similaires

  1. qui connait sqlite ?
    Par Emmanuel Lecoester dans le forum SQLite
    Réponses: 23
    Dernier message: 19/02/2010, 13h44
  2. [Débutant] Lenteur avec TComPort
    Par PhDt76 dans le forum C++Builder
    Réponses: 22
    Dernier message: 27/09/2003, 21h43
  3. lenteur d'affichage de requete dans un DBGrid
    Par nico27 dans le forum InterBase
    Réponses: 9
    Dernier message: 23/06/2003, 13h54
  4. [Sybase]probleme de lenteur
    Par MASSAKA dans le forum Sybase
    Réponses: 3
    Dernier message: 19/03/2003, 22h58
  5. Lenteur d'execution de Jbuilder 6
    Par Tsimplice dans le forum JBuilder
    Réponses: 6
    Dernier message: 18/12/2002, 14h41

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