Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1786 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  SELECT trop lent dans un fichier texte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SELECT trop lent dans un fichier texte

n°1431262
the big be​n
Posté le 25-08-2006 à 11:22:18  profilanswer
 

Bonjour,
 
Comment puis je faire pour accélérer mes temps de traitement?
J'ai un fichier de plus ou moins 2.000.000 de lignes dans lequel je doit effectuer environ 5000 query.
Donc pour l'instant je charge tout en mémoire dans une DataTable puis ensuite j'utilise une DataView puis la propriété DataView.RowFilter. Mais c'est horriblement lent!
 
Donc comment puis je optimiser? Est ce que se serait plus rapide de tout insérer dans MsSql puis de faire mes query via MsSql?  
Sinon existe t il quelque chose de plus rapide que les RowFilter des dataView pour faire mes query?
 
D'avance merci
 
Ben

mood
Publicité
Posté le 25-08-2006 à 11:22:18  profilanswer
 

n°1431292
MagicBuzz
Posté le 25-08-2006 à 11:50:55  profilanswer
 

Ce sera clairement plus rapide de bosser avec un SGBD, ça c'est sûr.
 
Ensuite, plutôt que de charger dans un DataView, si tes query ne portent que sur un seul champ, tu peux aussi charger le fichier dans un arbre. La recherche dans un arbre sera bien plus efficace.

n°1431311
moi23372
Posté le 25-08-2006 à 12:06:57  profilanswer
 

oui mais cela impliquerais que l'arbre soit trié :S pas génial non plus... C'est clair qu'un fichier de 2.000.000 d'enregistrements c'est pas super.  
 
Mais réinjecté les data dans une bd avant de faire la query si de tt façon les data de base sont dans un fichier, ralentira encore plus qu'autre chose l'opération.

n°1431315
MagicBuzz
Posté le 25-08-2006 à 12:09:47  profilanswer
 

C'est sûr que s'il ne construit la base que pour faire les requêtes, ça ne va rien arranger.
 
Il est de quel format le fichier ?
Y'a déjà un tri de fait dedans ?

n°1431358
the big be​n
Posté le 25-08-2006 à 13:11:55  profilanswer
 

Il est au format .txt  
Et non il n'y a aucun tri
 
J'utiliserai ce fichier que pour mes requete. Ce fichier est la sortie d'un programme sur lequel je n'ai pas la main!


Message édité par the big ben le 25-08-2006 à 13:12:42
n°1431359
moi23372
Posté le 25-08-2006 à 13:16:18  profilanswer
 

tu n'as pas trop de possibilités alors. L'arbre tombe à l'eau et passer par un SGBD aussi.  
 
Dans le meilleure des cas faudra prendre ton mal en patience. Cependant, rien ne t'empêche de faire des tri toi même (Heap Sort) et de faire les opérations après. Tu pourras gagner un peu de temps, mais ne crois pas que tu vas booster le truc à crever.

n°1431371
MagicBuzz
Posté le 25-08-2006 à 13:41:37  profilanswer
 

.txt ça veut rien dire, ça pourrait être .duchemol ça changerait rien ;)
 
moi je parle du format interne : pas fixe, csv, xml, etc.

n°1432358
the big be​n
Posté le 28-08-2006 à 10:08:48  profilanswer
 

du csv avec les champs séparés par des tab

n°1432383
axelazerty
Posté le 28-08-2006 à 10:35:38  profilanswer
 

parcourir le fichier, preparer une requete:  
insert into x values(xxxx),(xxxx),(xxxx),(xxxxx),(xxxxxxx)
 
une seule requete à exécuter, le goulot d'étranglement sera la vitesse de lecture du fichier , pas le sgbd.
 
En comptant 100 caractère par ligne, on arrive à 200mo d'occupation mémoire pour la chaîne, tu peux découper par paquet de 10 000 lignes par exemple si tu n'as pas beaucoup de ram et ça swappe trop.

n°1432413
the big be​n
Posté le 28-08-2006 à 11:14:55  profilanswer
 

En insérant dans une table temporaire (en mémoire) avec insert into #temp ca va déja nettement plus vite aussi....


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  SELECT trop lent dans un fichier texte

 

Sujets relatifs
[Résolu]Problème avec le chemin du fichier courant![Résolu][C#.NET] Supprimer un fichier, acces refusé ??
Comment savoir quel processus utilise tel fichier ?tri fichier texte - VBS
Chemin du fichier courantAcceder a une bibliotheque de fonctions dans un fichier xla ??
swap image avec OnMouseOver sur un selectBesoin d'aide pour modification courte d'un fichier php
Imprimer fichier html 
Plus de sujets relatifs à : SELECT trop lent dans un fichier texte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR