begin process at 2010 02 09 18:12:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Foxpro

 > 

Divers

 > 

Général

 > 

Forcer Utilisation d'un index dans une requete en VB


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Forcer Utilisation d'un index dans une requete en VB

jeudi 27 juillet 2006 à 15:43:11 | Forcer Utilisation d'un index dans une requete en VB

paperino

Bonjour,

J'ai cherché sur le forum comment faire pour forcer l'utilisation d'un index.
je m'explique, je vais chercher un numéro de serie (en utilisant une appli developpée en VB6) sur une table de grande taille et l'opération prend plusieurs minutes.
La table est (entre autres) indexée sur les numéros de série, donc je me demande (si c'est possible) comment forcer l'utilisation de cet index que l'on va appelé Index_numserie (contenu dans INDEX_Table.CDX).

Voici le début du code que j'utilise :
Set cn = New ADODB.Connection
cn.Open "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=M:\STOCK;Exclusive=No;Collate=Machine;NULL=NO;DELETED=YES;BACKGROUNDFETCH=NO"

requete = "SELECT * FROM NOM_DE_LA_TABLE WHERE MV_NSER = 'ABC123456'"


Merci d'avance

Nicolas
vendredi 28 juillet 2006 à 11:06:43 | Re : Forcer Utilisation d'un index dans une requete en VB

MichelAtoutFox

Membre Club

Paperino,

quelques questions préalables:

- une table de grande taille, ça veut dire quoi, pour toi? est-ce que tu as une idée du nombre d'enregistrements de cette table (nbre de lignes).
- ta chaine de connexion mentionne un collate=Machine. connais-tu le collate de ton index?
- le fichier est sur l'unité M: Est-ce que c'est un disque local, ou bien passes-tu par un LAN?

vendredi 28 juillet 2006 à 15:34:31 | Re : Forcer Utilisation d'un index dans une requete en VB

paperino

Alors, voilà, une base de grande taille c'est 800 Mega ...

Il y a plus de 1 300 000 enregistrements
Je passe par un lecteur mappé M:

En ce qui concerne le collate, je dois t'avouer que j'ai trouvé cette chaine de connexion sur le net et je ne sais pas à quoi ça correspond
si tu pouvais m'éclairer d'ailleurs, (et peut-etre les autres aussi) ca serait sympa

Merci

vendredi 28 juillet 2006 à 16:56:09 | Re : Forcer Utilisation d'un index dans une requete en VB

MichelAtoutFox

Membre Club
si tu passes par un réseau, "plusieurs minutes" ne me surprennent pas, étant donné la taille de ta table et le nombre de lignes.

le collate, c'est la table de caractère nationaux utilisée pour l'exécution des requètes. Si cet index a été créé avec un set collate to machine, alors ton collate=machine te donnera la meilleure performance. Mais si par exemple, tu travailles sur un fichier de données dont l'index a été créé avec un collate to spanish, alors ta requète va ralentir. Elle te renverra le bon résultat, mais elle sera plus lente.

est-ce que tu as lu l'aide sur VFP OLEDB? tu peux charger oledb ici
  [ Lien ]

tu y trouveras notamment un exemple d'utilisation des commandes natives de VFP dans un cursor server ; il faudrait voir si l'utilisation de SEEK( ) te donne un résultat plus rapidement (parceque le deuxième paramètre de cette instruction, c'est le tag d'index)


Cette discussion est classée dans : table, utilisation, requete, index, forcer


Répondre à ce message

Sujets en rapport avec ce message

aide [ par sirebouh ] salut je suis entreint de developper un logiciel de la gestion des recources humaines. le problème consistedans les congés des employées c-a-d  j'ai l erreur 26 lors de l'ouverture de fichiers de données [ par stepber ] Bonjour, je reprends actuellement un logiciel développé avec VFP6. Une instruction d'ouverture de table FoxPro dans le programme provoque de temps Requete Foxpro [ par spootnic22 ] salut,j'exécute une requete sous visual foxpro6.0 mais ça marche pas:"insert into table1  select * from table2 where condition"un message d'erreur s'a modification d'une table [ par slimvir ] bonjour, j'utilise ce code pour modifier une ligne d'une table mais cette ligne ne se modifier mais elle s'ajoute ?? merciSELECT table1replace Codcli Transfère données vers sql 2005 [ par zuddap ] bonjour a tous voila on m'a confier la charge de transférer les donnée contenu dans un fichier table foxpro dans les table correspondante sous sql 200 Explorateur et Foxpro : ouvrir une table en exclusif [ par mike_vk ] Bonjour, Je cherche en gros à avoir un menu contextuel sur les dbf qui puisse me permettre de choisir de l'ouvrir en "shared" ou "exlusive". Existe-t VFP9 et Exal [ par sghchafaa ] Bonjour;Je suis un debutant en VFP9, et je l'etudie peut a peut; jusqu'a maintenant j'ai appris a connecter evec une base de donner SQL server et fair enregistrement dupliqué [ par Etienne77 ] Bonjour, J'ai un problème incompréhensible, j'utilise vfp6, une base de donnée Foxpro et un formulaire tout à fait classique pour naviguer dans une t Taille maximale d'une table foxpro [ par PIBOUNET ] Bonjour,Je souhaiterais savoir comment évaluer le nombre d'enregistrements maximum pouvant être gérés dans une table Foxpro (probablement fonction de commande d'alerte d'une table endommagée [ par FRANAP ] Bonjour,Merci encore pour le VRunFoxpro qui nous aide bien pour mettre à jour les tables, chez les clients.Chez un client, utilisant une application F


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,250 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales