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 Oracle Discussion :

cache deconseillé ?


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 112
    Par défaut cache deconseillé ?
    Slt j'etudie actuellement les sequences en classe et le prof nous a recommandé d'eviter l'utilisation de l'option cache lorsqu'on cree une sequence et de les creer toujours avec l'option nocache sinon on peut perdre les données en cas de crash.
    Est ce que quelqu'un peut m'expliquer prq le cache est "dangereux" ?
    Merci beaucoup .
    ps:actuellement je ne peux pas contacter mon prof pour avoir une reponse .

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    En réalité ça dépend si tu peux avoir des trous ou pas dans tes ID. Si c'est pour une PK sans signification fonctionnelle le CACHE permet de mettre quelques valeurs en mémoire et évite donc les contentions sur la séquence. En revanche, les valeurs étant en mémoire, tu te doutes bien qu'elles sont perdues en cas de redémarrage de l'instance. Pour des numéros de factures c'est donc pas possible parce que les trous sont interdits

    Ton prof aurait dû être plus complet dans sa prévention

    Edit : quand je parle de trou, c'est dans la séquence bien sûr. Exemple avec un cache 5 :

    1
    2
    3
    7
    8
    9
    après la 3° valeur la base a été redémarré, la séquence continue donc à 7. A toi de voir si fonctionnellement cela pose problème ou pas.

  3. #3
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    Le cache induit des "trous".
    La contre-partie, c'est de meilleures performances.

    Donc non, dire qu'il faut faire une séquence nocache est une CONNERIE !
    (tout comme dire qu'il faut faire une séquence avec un cache, d'ailleurs ! )

    [edit]
    j'avais fait le test avec une boucle de 10 000 loops qui interroge le nextval.
    Il faut 21 seconde pour une séquence nocache, moins d'une seconde avec un cache à 100)
    [/edit]

    [edit2]
    Pour compléter, je dirais qu'un cache non seulement introduit des trous dans la numérotation mais aussi peut entraîner une numérotation chronologique d'ordre non croissant
    [/edit2]

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 112
    Par défaut
    donc si j'ai bien compris si je cree une sequence a qui commence de 1 avec un cache de 10 et je consulte a.currval normalement je dois avoir 11 ?

  5. #5
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Non, currval doit être précédé de nextval obligatoirement. Et currval indique donc la valeur du dernier nexval de la session.

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 112
    Par défaut
    supposons que j'ai utilisé la sequence une fois ,normalement je dois avoir 11 lrsq je consulte seq.currval ?

  7. #7
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    NON !!! relis ce que j'ai écris et fait des essayes

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

Discussions similaires

  1. le cache est deconseillé prq ?
    Par hunter99 dans le forum SQL
    Réponses: 3
    Dernier message: 07/11/2007, 09h33
  2. Répertoire caché
    Par KUBITUS dans le forum Delphi
    Réponses: 30
    Dernier message: 13/04/2007, 07h19
  3. Qu'est ce que le cache ?
    Par irrou dans le forum Assembleur
    Réponses: 4
    Dernier message: 24/11/2002, 23h28
  4. Ouvrir (fopen) un fichier caché
    Par shef dans le forum C
    Réponses: 2
    Dernier message: 09/09/2002, 09h06
  5. Webbrowser : Comment ne pas prendre la page en cache
    Par cedm78 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 30/08/2002, 11h17

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