|
Iniciado por Nicolas, abr., 21 2005 8:13 PM - 3 respostas |
| |
| | | |
|
| |
Publicado em abril, 21 2005 - 8:13 PM |
Bonjour a tous,
Voila mon probleme :
Je veux créer une table fichier a partir d'une requete qui me trie un autre fichier HF decrit dynamiquement auparavant dont les enregsitrements proviennent de l'importation d'un fichier texte.
Alors voila ce que j'ai fait :
Requete : SELECT * FROM [A1005-ENZ],TABLE_RB WHERE LEFT(Champ7,2)=TABLE_RB.DEP ORDER BY TABLE_RB.ZONE,Champ7,Champ8
A1005-ENZ est le fichier HF decrit dynamiquement
ensuite je parcours ma requete et la surprise
Code du parcours de la requete :
HLitPremier("REQ") TANTQUE PAS HEnDehors("REQ") HCopieEnreg({cNomFichierHF}+"TRI","REQ",hValDéfaut) HAjoute({cNomFichierHF}+"TRI") HLitSuivant("REQ") FIN
Avec l'analyseur (sur un fichier de 44000 lignes et 12 champs) : temps d'execution de HLitPremier consomme 129 secondes ce quime semble enorme alors peut etre un probleme dans me requete...
Merci d'avance
Cordialement,
Nico |
| |
| |
| | | |
|
| | |
| |
Publicado em abril, 22 2005 - 4:13 PM |
Bonjour, c'est vrai que c'est bizarre.
Voici peut-être quelques "trcucs" : - Essayez le INNER JOIN au lieu de la simple virgule entre les deux tables - Placez des index sur vos tables (avec hyperfile ça s'appelle des "Clés non uniques" je crois - Choisissez bien vos champs au lieu de l'horrible "*" du SELECT - Essayez de voir s'il n'y a pas une corruption de la table
Amicalement. |
| |
| |
| | | |
|
| | |
| |
Publicado em abril, 23 2005 - 3:20 PM |
"Nicolas" <nicolas.glorioso@caramail.com> a écrit dans le message de news:4267c576$1@news.pcsoft.fr...
Bonjour a tous,
Voila mon probleme :
Je veux créer une table fichier a partir d'une requete qui me trie un autre fichier HF decrit dynamiquement auparavant dont les enregsitrements proviennent de l'importation d'un fichier texte.
Alors voila ce que j'ai fait :
Requete : SELECT * FROM [A1005-ENZ],TABLE_RB WHERE LEFT(Champ7,2)=TABLE_RB.DEP ORDER
BY TABLE_RB.ZONE,Champ7,Champ8
A1005-ENZ est le fichier HF decrit dynamiquement
ensuite je parcours ma requete et la surprise
Code du parcours de la requete :
HLitPremier("REQ") TANTQUE PAS HEnDehors("REQ") HCopieEnreg({cNomFichierHF}+"TRI","REQ",hValDéfaut) HAjoute({cNomFichierHF}+"TRI") HLitSuivant("REQ") FIN
Avec l'analyseur (sur un fichier de 44000 lignes et 12 champs) : temps d'execution de HLitPremier consomme 129 secondes ce quime semble enorme alors peut >etre un probleme dans me requete...
si tu n'as pas d'index c'est normal. pour chaque lecture de A1005-ENZ (44000 lignes) tu vas regarder si la ligne existe dans TABLE_RB. Pour tous les enreg retenus tu faire un tri sur 3 champ.
Pour moi il te faut créer un champ13=LEFT(Champ7,2), créer un index sur Champ13, créer un index sur TABLE_RB.DEP, faire un HOptimiseRequete() après ton import de fichier.
Tiens nous au courant
Merci d'avance
De rien |
| |
| |
| | | |
|
| | |
| |
Publicado em abril, 25 2005 - 4:43 PM |
Beaucoup de gens me dise d'indexer mon champ13 créer a partir d'un left(Champ7,2) mais le probleme est le suivant :
1- J'importe mon fichier client 2- Je sélectionne les champs nécessaire au tri (ici champ7=code postal et champ8 = commune) 3- Il me sélectionne les 2 premiers caracteres du champ7 (le département afin de trier mon fichier sur la zone(TABLE_RB) et ensuite sur le code postal)
Ma question est la suivante :
Est il possible d'ajouter un champ (ex:champ13) a une table décrite dynamiquement???
En effet je ne peux pas la décrire au moment de l'import car je ne sais pas a ce moment ou se trouve le code postal... c'est par la suite grace a un petit apercu que l'on determine le champ contenant le code postal...
Merci bien a vous...
PS : je cherche encore et encore |
| |
| |
| | | |
|
| | | | |
| | |
|