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

ASP Discussion :

Optimisation d'insertion de données dans une base SQL


Sujet :

ASP

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Optimisation d'insertion de données dans une base SQL
    Bonjour

    je voudrais savoir quel est la meilleur solution en terme de ressources pour la base sql par rapport à ces 3 solutions

    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
    ' Solution 1 :
    Set ReqInsert = Server.CreateObject("ADODB.Recordset")
    cmdTemp.CommandText = "INSERT INTO table (champ1, champ2, ...) VALUES ('Valeur1','Valeur2', ...)"
    cmdTemp.CommandType = 1
    Set cmdTemp.ActiveConnection = DataBase
    IObjet.Open cmdTemp, , 0, 1
     
    ' Solution 2 :
    Set ReqInsert = Server.CreateObject("ADODB.Recordset")
    ReqInsert.Open NomTab, DataBase, 3,3
    ReqInsert.AddNew            
    ReqInsert.Fields (champ1) = Valeur1
    ReqInsert.Fields (champ2) = Valeur2
    ...
    ReqInsert.Update			        
    ReqInsert.Close
    set ReqInsert = nothing
     
    ' Solution 3 :
    DataBase.Execute (INSERT INTO table (champ1, champ2, ...) VALUES ('Valeur1','Valeur2',...))
    et je voudrais savoir aussi , si l'ordre d'insertion des champs dans les requetes INSERT est important

    d'avance merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Points : 1 077
    Points
    1 077
    Par défaut
    Je pense que les 3 methodes seront aussi rapide l'une que l'autre pour la bdd en tout cas.

    En ce qui conecerne l'application c'est p-t autre chose.

    Mais il existe des outils pour analyser les requettes qui sont envoyées au serveur avec leurs temps d'execution...

    A+

  3. #3
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bonjour

    Les trois methodes ne sont pas équivalente. Je sais que la première est conseillée, justement pour des histoires de performances. (en précisant, je suppose :
    [CODE]set
    cmdTemp=server.createObject("adodb.command")[CODE]
    Perso, j'utilise ... la deuxième !

    Pas pour les performances, mais la maintenance est plus aisée.


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci à tous pour vos réponses

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Points : 1 077
    Points
    1 077
    Par défaut
    Citation Envoyé par roro06
    Bonjour

    Les trois methodes ne sont pas équivalente. Je sais que la première est conseillée, justement pour des histoires de performances. (en précisant, je suppose :
    [CODE]set
    cmdTemp=server.createObject("adodb.command")[CODE]
    Perso, j'utilise ... la deuxième !

    Pas pour les performances, mais la maintenance est plus aisée.
    La question est par rapport à la DB. Donc pour moi le temps d'insert sur le serveur de DB sont equivalent je pense.

    En ce qui concerne les performance par rapport au methode utililsée c'est autre chose. Je me prononcerais pas la dessus. mais ce que je fais en general pour savoir cela, j'execute la meme commande x fois (genre 1000) et je regarde les temps fais par les differentes methodes.

    Perso, moi j'utililsait la 3eme pour les insert,update et delete. Et la 2eme methode pour les select.

    A+

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/07/2010, 23h43
  2. Insertion de données dans une base acces
    Par sebac dans le forum VB.NET
    Réponses: 5
    Dernier message: 12/06/2008, 14h51
  3. vb.net et insertion de donnée dans une base sql plus
    Par anissabosch dans le forum VB.NET
    Réponses: 4
    Dernier message: 18/10/2007, 19h39
  4. [VB6]problème d'insertion des donneés dans une base d'Access2003
    Par lanbok dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/05/2006, 12h17
  5. Réponses: 3
    Dernier message: 27/03/2006, 17h25

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