Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[HELP] Comment réduire la taille d'une base donnée

4 réponses
Avatar
Xeph
Bonjour,

J’ai un problème de taille de ma base de données qui est atteint les 2Go.
Après compactage elle fait enore 1.6Go. En effet je récupère des tables
importantes de données à partir de notre AS400. Elles sont stockées en
locale.

Je procède de la manière suivante :
- une table (table_1) avec un lien ODBC que je copie en locale
(table_1_locale) dans ma base.
- Une mise à jour avec une macro que je répète pour chaque table
=> Delete * from table_1_locale
=> Insert into table_1_locale select * from table_1

Comment faire pour réduire la taille, peux-t-on copier qu’une partie des
tables selon des critères sur plusieurs champs (comment le faire ?)

Merci de votre aide.

Xeph

4 réponses

Avatar
Fabien
Bonjour,

J’ai un problème de taille de ma base de données qui est atteint les 2Go.
Après compactage elle fait enore 1.6Go. En effet je récupère des tables
importantes de données à partir de notre AS400. Elles sont stockées en
locale.

Je procède de la manière suivante :
- une table (table_1) avec un lien ODBC que je copie en locale
(table_1_locale) dans ma base.
- Une mise à jour avec une macro que je répète pour chaque table
=> Delete * from table_1_locale
=> Insert into table_1_locale select * from table_1

Comment faire pour réduire la taille, peux-t-on copier qu’une partie des
tables selon des critères sur plusieurs champs (comment le faire ?)

Merci de votre aide.

Xeph

Bonjour Xeph

En ce qui concerne la selection des enreg a ajouter dans ta table Insert
into table_1_locale select * from table_1 where .........
t ça roule.
Maintenant pour ce qui est des champs alors site les dans ta clause
insert ([champs1],[champs2],....) into table1_local select
[champs1],[champs2],.. from table_1 where ......
et voilà.

Maintenant as tu vraiment besoin de redescendre les données de l'as/400
en local ?
Est-ce que se servir d'access en frontal de ton as/400 ne serait-il pas
suffisant ?

Dernier point si tu n'arrive pas a passer sous les 2GO alors passe tes
table sous SQL server. Et Access devient frontal du serveur sql.

Voilà quelques pistes

Avatar
Xeph
Bonjour Fabien

Merci pour ta réponse.

Pour répondre à ta question :
- l'as400 est situé à 1500km de mon site donc les temps de réponse mes
requêtes ne sont accepatable. Il me faut déjà 45 min pour faire la mise à
jour.
- Je ne connais pas SQL serveur et je n'ai pas d'assistance informatique içi.
- Pour la copie je ne veux pas enlever des champs mais copier qu'une part!e
des lignes, par exemple que les 2 dernieres années pour une societé donnée.
Mais là je ne sais pas comment faire.


cdt

Xeph





Bonjour,

J’ai un problème de taille de ma base de données qui est atteint les 2Go.
Après compactage elle fait enore 1.6Go. En effet je récupère des tables
importantes de données à partir de notre AS400. Elles sont stockées en
locale.

Je procède de la manière suivante :
- une table (table_1) avec un lien ODBC que je copie en locale
(table_1_locale) dans ma base.
- Une mise à jour avec une macro que je répète pour chaque table
=> Delete * from table_1_locale
=> Insert into table_1_locale select * from table_1

Comment faire pour réduire la taille, peux-t-on copier qu’une partie des
tables selon des critères sur plusieurs champs (comment le faire ?)

Merci de votre aide.

Xeph

Bonjour Xeph

En ce qui concerne la selection des enreg a ajouter dans ta table Insert
into table_1_locale select * from table_1 where .........
t ça roule.
Maintenant pour ce qui est des champs alors site les dans ta clause
insert ([champs1],[champs2],....) into table1_local select
[champs1],[champs2],.. from table_1 where ......
et voilà.

Maintenant as tu vraiment besoin de redescendre les données de l'as/400
en local ?
Est-ce que se servir d'access en frontal de ton as/400 ne serait-il pas
suffisant ?

Dernier point si tu n'arrive pas a passer sous les 2GO alors passe tes
table sous SQL server. Et Access devient frontal du serveur sql.

Voilà quelques pistes




Avatar
ledebelair
Bjr Xeph,
Pour le Sql, je ne peux pas t'aider non plus.
Pour ta copie de base sur les deux dernières années:
S'il y a un champs 'année', tu fais ta requête création de table (pour
copier l'AS400) en mettant dans la ligne critère: ">année(maintenant())-3'.
Salut


Bonjour Fabien

Merci pour ta réponse.

Pour répondre à ta question :
- l'as400 est situé à 1500km de mon site donc les temps de réponse mes
requêtes ne sont accepatable. Il me faut déjà 45 min pour faire la mise à
jour.
- Je ne connais pas SQL serveur et je n'ai pas d'assistance informatique içi.
- Pour la copie je ne veux pas enlever des champs mais copier qu'une part!e
des lignes, par exemple que les 2 dernieres années pour une societé donnée.
Mais là je ne sais pas comment faire.


cdt

Xeph





Bonjour,

J’ai un problème de taille de ma base de données qui est atteint les 2Go.
Après compactage elle fait enore 1.6Go. En effet je récupère des tables
importantes de données à partir de notre AS400. Elles sont stockées en
locale.

Je procède de la manière suivante :
- une table (table_1) avec un lien ODBC que je copie en locale
(table_1_locale) dans ma base.
- Une mise à jour avec une macro que je répète pour chaque table
=> Delete * from table_1_locale
=> Insert into table_1_locale select * from table_1

Comment faire pour réduire la taille, peux-t-on copier qu’une partie des
tables selon des critères sur plusieurs champs (comment le faire ?)

Merci de votre aide.

Xeph

Bonjour Xeph

En ce qui concerne la selection des enreg a ajouter dans ta table Insert
into table_1_locale select * from table_1 where .........
t ça roule.
Maintenant pour ce qui est des champs alors site les dans ta clause
insert ([champs1],[champs2],....) into table1_local select
[champs1],[champs2],.. from table_1 where ......
et voilà.

Maintenant as tu vraiment besoin de redescendre les données de l'as/400
en local ?
Est-ce que se servir d'access en frontal de ton as/400 ne serait-il pas
suffisant ?

Dernier point si tu n'arrive pas a passer sous les 2GO alors passe tes
table sous SQL server. Et Access devient frontal du serveur sql.

Voilà quelques pistes






Avatar
Xeph
Bonjour,

je viens de trouver la solution à mon problème.

1 - Je fais une requete d'ajout (REQUETE_AJOUT_TABLE1) avec mes critères

2 - Une macro pour effacer et mettre à jour la table
-Delete * from table_1_locale
-ouvrirereqete : REQUETE_AJOUT_TABLE1

Merci pour votre aide

Bjr Xeph,
Pour le Sql, je ne peux pas t'aider non plus.
Pour ta copie de base sur les deux dernières années:
S'il y a un champs 'année', tu fais ta requête création de table (pour
copier l'AS400) en mettant dans la ligne critère: ">année(maintenant())-3'.
Salut


Bonjour Fabien

Merci pour ta réponse.

Pour répondre à ta question :
- l'as400 est situé à 1500km de mon site donc les temps de réponse mes
requêtes ne sont accepatable. Il me faut déjà 45 min pour faire la mise à
jour.
- Je ne connais pas SQL serveur et je n'ai pas d'assistance informatique içi.
- Pour la copie je ne veux pas enlever des champs mais copier qu'une part!e
des lignes, par exemple que les 2 dernieres années pour une societé donnée.
Mais là je ne sais pas comment faire.


cdt

Xeph





Bonjour,

J’ai un problème de taille de ma base de données qui est atteint les 2Go.
Après compactage elle fait enore 1.6Go. En effet je récupère des tables
importantes de données à partir de notre AS400. Elles sont stockées en
locale.

Je procède de la manière suivante :
- une table (table_1) avec un lien ODBC que je copie en locale
(table_1_locale) dans ma base.
- Une mise à jour avec une macro que je répète pour chaque table
=> Delete * from table_1_locale
=> Insert into table_1_locale select * from table_1

Comment faire pour réduire la taille, peux-t-on copier qu’une partie des
tables selon des critères sur plusieurs champs (comment le faire ?)

Merci de votre aide.

Xeph

Bonjour Xeph

En ce qui concerne la selection des enreg a ajouter dans ta table Insert
into table_1_locale select * from table_1 where .........
t ça roule.
Maintenant pour ce qui est des champs alors site les dans ta clause
insert ([champs1],[champs2],....) into table1_local select
[champs1],[champs2],.. from table_1 where ......
et voilà.

Maintenant as tu vraiment besoin de redescendre les données de l'as/400
en local ?
Est-ce que se servir d'access en frontal de ton as/400 ne serait-il pas
suffisant ?

Dernier point si tu n'arrive pas a passer sous les 2GO alors passe tes
table sous SQL server. Et Access devient frontal du serveur sql.

Voilà quelques pistes