OVH Cloud OVH Cloud

grosse table access

9 réponses
Avatar
ACCESS
bonjour
je travaille avec Delphi et de tres grosses tables Access 2000, j'utilise
TADOTable.
quand j'ouvre une tres grosse table (30000 enregistrements), ça prend un
temps démeusuré et énormément de mémoire, le programme devient inutilisable.
comment remedier à cela ?

merci

9 réponses

Avatar
Archives
J'ignore ce qu''ouvrir" une table signifie. Avec une base de données, on
peut faire un Select , un Update, un Delete ou un Insert sur une table, mais
l'ouvrir ?

Un Insert ne pose pas de problème de temps de réponse puisque c' est le
moteur de la base qui travaille. Un Delete ou un Update dépend de la
complexité de la clause Where.

Un Select lui, peut engenfrer des temps de réponse assez long si l'on tente
de renvoyer beaucoup d'enregistrements. Le plus efficace est de faire un
Select renvoyant un peit nombre d'enregistrements à la fois ce qui ne sature
ni la mémoire ni le processeur.


"ACCESS" a écrit dans le message de news:
br2ctt$dbv$
bonjour
je travaille avec Delphi et de tres grosses tables Access 2000, j'utilise
TADOTable.
quand j'ouvre une tres grosse table (30000 enregistrements), ça prend un
temps démeusuré et énormément de mémoire, le programme devient
inutilisable.

comment remedier à cela ?

merci




Avatar
J-Pierre
Bonsoir,

30000 lignes dans une table, c'est tout petit, le problème n'est pas dans la taille de la table.

J-Pierre

"ACCESS" a écrit dans le message de news:br2ctt$dbv$
bonjour
je travaille avec Delphi et de tres grosses tables Access 2000, j'utilise
TADOTable.
quand j'ouvre une tres grosse table (30000 enregistrements), ça prend un
temps démeusuré et énormément de mémoire, le programme devient inutilisable.
comment remedier à cela ?

merci




Avatar
ACCESS
J'ignore ce qu''ouvrir" une table signifie. Avec une base de données, on
peut faire un Select , un Update, un Delete ou un Insert sur une table,
mais

l'ouvrir ?
table.open !





Un Insert ne pose pas de problème de temps de réponse puisque c' est le
moteur de la base qui travaille. Un Delete ou un Update dépend de la
complexité de la clause Where.

Un Select lui, peut engenfrer des temps de réponse assez long si l'on
tente

de renvoyer beaucoup d'enregistrements. Le plus efficace est de faire un
Select renvoyant un peit nombre d'enregistrements à la fois ce qui ne
sature

ni la mémoire ni le processeur.


"ACCESS" a écrit dans le message de news:
br2ctt$dbv$
bonjour
je travaille avec Delphi et de tres grosses tables Access 2000,
j'utilise


TADOTable.
quand j'ouvre une tres grosse table (30000 enregistrements), ça prend un
temps démeusuré et énormément de mémoire, le programme devient
inutilisable.

comment remedier à cela ?

merci








Avatar
ACCESS
30000 lignes dans une table, c'est tout petit, le problème n'est pas dans
la taille de la table.


alors pourquoi table.open prend un temps fou et bouffe toute la mémoire !

Avatar
J-Pierre
Il me semble que table n'est pas un objet valide DAO, ni ADODB, ADOX et SQLDMO oui.
Mais open n'est pas une méthod valide.

Tu n'es sans doute pas sur le bon forum.

J-Pierre

"ACCESS" a écrit dans le message de news:br2ku4$jn4$
30000 lignes dans une table, c'est tout petit, le problème n'est pas dans
la taille de la table.


alors pourquoi table.open prend un temps fou et bouffe toute la mémoire !





Avatar
ACCESS
disons que table1 est un objet de type TADOTable
table1.open prend toute la memoire quand table comprend 30000 lignes, peut
etre est il equivalent à select * fro table1


"J-Pierre" a écrit dans le message de
news:
Il me semble que table n'est pas un objet valide DAO, ni ADODB, ADOX et
SQLDMO oui.

Mais open n'est pas une méthod valide.

Tu n'es sans doute pas sur le bon forum.

J-Pierre

"ACCESS" a écrit dans le message de
news:br2ku4$jn4$

30000 lignes dans une table, c'est tout petit, le problème n'est pas
dans



la taille de la table.

alors pourquoi table.open prend un temps fou et bouffe toute la mémoire
!











Avatar
J-Pierre
Peut-être, peut-être, mais tu auras plus d'infos en allant sur le NG de Delphi, si TADOTable est un objet Delphi.

Je ne te chasse pas....mais pour ouvrir avec Access en mode feuille de données une table avec 500000 lignes, ce qui est équivalent à
un SELECT * FROM maTable, ça prend 3 secondes...

J-Pierre

"ACCESS" a écrit dans le message de news:br2nkn$kjd$
disons que table1 est un objet de type TADOTable
table1.open prend toute la memoire quand table comprend 30000 lignes, peut
etre est il equivalent à select * fro table1


"J-Pierre" a écrit dans le message de
news:
Il me semble que table n'est pas un objet valide DAO, ni ADODB, ADOX et
SQLDMO oui.

Mais open n'est pas une méthod valide.

Tu n'es sans doute pas sur le bon forum.

J-Pierre

"ACCESS" a écrit dans le message de
news:br2ku4$jn4$

30000 lignes dans une table, c'est tout petit, le problème n'est pas
dans



la taille de la table.

alors pourquoi table.open prend un temps fou et bouffe toute la mémoire
!















Avatar
J-Pierre
Salut,

Avec Access, dans la fenêtre Base de données, on peut sélectionner une table, et l'ouvrir, il y a un bouton pour ça. C'est
l'équivalent d'un SELECT * FROM maTable, et je pense que l'expression "ouvrir une table" est passée dans le langage courant ;-)

J-Pierre

"Archives" a écrit dans le message de news:br2ke0$6ko$
J'ignore ce qu''ouvrir" une table signifie. Avec une base de données, on
peut faire un Select , un Update, un Delete ou un Insert sur une table, mais
l'ouvrir ?

Un Insert ne pose pas de problème de temps de réponse puisque c' est le
moteur de la base qui travaille. Un Delete ou un Update dépend de la
complexité de la clause Where.

Un Select lui, peut engenfrer des temps de réponse assez long si l'on tente
de renvoyer beaucoup d'enregistrements. Le plus efficace est de faire un
Select renvoyant un peit nombre d'enregistrements à la fois ce qui ne sature
ni la mémoire ni le processeur.



Avatar
ACCESS
Je ne te chasse pas....mais pour ouvrir avec Access en mode feuille de
données une table avec 500000 lignes, ce qui est équivalent à

un SELECT * FROM maTable, ça prend 3 secondes...


ok jean pierre, mais si tu browse les donnes, tu verras que Access n'a pas
fait passerla table en mémoire, seulement la partie visible.
là c'est moi qui me chasse !