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 :

Importer un gros fichier SQL


Sujet :

ASP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de sami_c
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Mai 2002
    Messages
    764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 764
    Par défaut Importer un gros fichier SQL
    Salut,
    J'ai écris un script permettant d'exécuter les requêtes sql d'un fichier donné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	const ForReading = 1
    	const TristateFalse = 0
    	dim objFS
    	dim objFile
    	dim objTS
    	set objFS = Server.CreateObject("Scripting.FileSystemObject")
    	set objFile = objFS.GetFile(Server.MapPath("script.sql"))
    	set objTS = objFile.OpenAsTextStream(ForReading, TristateFalse)
    	filecontent = objTS.Read(objFile.Size)
     
    	objConn.execute(filecontent)
    j'ai testé sur un petit script sql de 3 requêtes et ça a fonctionné. J'ai testé sur un sql réel de 6mo (environ 1500 INSERT) et le résultat est aléatoire : parfois je trouve dans ma base uniquement 200 enregistrement, parfois 205, parfois 199 ... bref je n'ai pas compris ce qui ne va pas ! quelqu'un peut m'aider svp ?? Merci

  2. #2
    Membre Expert
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Billets dans le blog
    1
    Par défaut
    Yop!


    Un problème de time-out?

  3. #3
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    Tu devrais peut-être lire les lignes une à une.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  4. #4
    Membre éclairé Avatar de sami_c
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Mai 2002
    Messages
    764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 764
    Par défaut
    ryan > j'ai augmenté le timeout de l'exécution des script ASP, mais je pense que je n'ai pas pensé au timeout de sql server ... je vais tester

    Immobilis > je ne peux pas car j'ai des requêtes qui inserrent du texte contenant lui même des retour à la ligne et des ';' ... donc pas moyen de retrouver les lignes INSERT !

  5. #5
    Membre éclairé Avatar de sami_c
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Mai 2002
    Messages
    764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 764
    Par défaut
    ryan > je viens de tester mais j'ai toujours le même problème !! De plus, s'il y avait un problème de timeout, j'aurais un message d'erreur non ?

  6. #6
    Membre Expert
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Billets dans le blog
    1
    Par défaut
    Yop!


    De plus, s'il y avait un problème de timeout, j'aurais un message d'erreur non ?
    Voui, logiquement...Mais si ça marche avec un petit fichier et que ça plante avec un gros fichier, ça sent quand même le problème de timeout.

    Tu devrais scinder tes requêtes. J'ai lu ce que tu répondais à Immobilis, mais si SQL peut trouver la fin d'un INSERT, tu devrais aussi y arriver.

  7. #7
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Tu peux nous donner un échantillon de ton fichier?
    "Winter is coming" (ma nouvelle page d'accueil)

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

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

    ... et dans une transaction ?

    filecontent = objTS.Read(objFile.Size)

    objConn.BeginTrans()
    objConn.execute(filecontent)
    objConn.CommitTrans()


    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.

  9. #9
    Membre éclairé Avatar de sami_c
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Mai 2002
    Messages
    764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 764
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Tu peux nous donner un échantillon de ton fichier?
    Voici un fichier de 6mo
    http://membres.lycos.fr/samtaz/_sql.v4.1.sql

    le même fichier rarré :
    http://membres.lycos.fr/samtaz/_sql.v4.1.rar

  10. #10
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Tu devrais peut-être essayer Bulk Insert: http://msdn.microsoft.com/fr-fr/library/ms188365.aspx

    J'ai l'impression qu'il y a pas mal de déchets dans ce fichier. Notement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT @@IDENTITY as last_id;
    La valeur n'a pas l'air d'être reprise.

    As-tu un moyen de diviser ce fichier? Tu le reçois comme ça?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Par défaut
    Tu pourrais aussi faire une lecture par ligne, et faire ta requete a chaque ligne pour cette lecture. Ainsi tu pourrais voir exactement ce qui se passe.

  12. #12
    Membre éclairé Avatar de sami_c
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Mai 2002
    Messages
    764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 764
    Par défaut
    Citation Envoyé par smerek Voir le message
    Tu pourrais aussi faire une lecture par ligne, et faire ta requete a chaque ligne pour cette lecture. Ainsi tu pourrais voir exactement ce qui se passe.
    Je ne peux pas lire le fichier ligne par ligne car les valeurs à insérer contiennent des retours à la ligne, comment faire donc pour différentier entre un retour à la ligne du texte et celui d'une requête sql ?

  13. #13
    Membre éclairé Avatar de sami_c
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Mai 2002
    Messages
    764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 764
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    As-tu un moyen de diviser ce fichier? Tu le reçois comme ça?
    En fait le fichier sql a été généré par un script ASP que j'ai écris. Comment tu vois le découpage ? je pourrait peut être découper chaque requête dans un fichier SQL à part mais vu que j'ai 84 000 enregistrement...j'aurais aussi 84 000 fichiers !! Bon je peux faire N requêtes SQL par fichier mais j'aurais toujours beaucoup de fichiers !

Discussions similaires

  1. Importer des gros fichiers
    Par Shivan dans le forum Général Java
    Réponses: 1
    Dernier message: 05/11/2008, 21h23
  2. Importer un gros fichier SQL sous windows
    Par bigsister dans le forum Outils
    Réponses: 2
    Dernier message: 24/08/2007, 15h17
  3. Importer un gros fichier
    Par tbassetto dans le forum Administration
    Réponses: 3
    Dernier message: 19/05/2007, 10h13
  4. Importation d'un fichier .sql en commande sql
    Par mysterywhiteboy59 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 31/07/2006, 21h08
  5. [phpMyAdmin] importation d'un fichier .sql volumineux dans phpMyAdmin problématique
    Par allowen dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 23/06/2006, 09h52

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