Le forum (ô combien francophone) des utilisateurs de Powerbuilder.




voila j'aurai aimé savoir s'il était possible de créer des tables dynamiquement en utilisant une application...
pour par exemple une application de comptabilité; avoir une table par client, donc à chaque création d'un nouveau dossier j'ai une table pour ce dossier... je dis ça pq on a une applic avec powerbuilder\sybase de comptabilité le probleme est que quand il y a beaucoup de clients dans la base le temps de reponse est trés long (pour afficher un état par exemple il faut plusieurs minutes ) donc on a pensé à une table par client mais je sais pas si c'est faisable ou pas
!!!
Dernière modification par disneb (14-05-2008 21:41:17)
Hors ligne
oui, il suffit d'utiliser les requetes sql depuis le powerscript.

Hors ligne














Bonsoir,
disneb a écrit:
voila j'aurai aimé savoir s'il était possible de créer des tables dynamiquement en utilisant une application...
oui, exemple (avec Oracle) :
String ls_sql ls_sql = 'CREATE TABLE CLIENT_A ( ID_CLIENT NUMBER NOT NULL PRIMARY KEY )' EXECUTE IMMEDIATE :ls_sql ;
disneb a écrit:
je dis ça pq on a une applic avec powerbuilder\sybase de comptabilité le probleme est que quand il y a beaucoup de clients dans la base le temps de reponse est trés long (pour afficher un état par exemple il faut plusieurs minutes
)
peut-être un serveur de base de données pas assez costaud, des requêtes non optimisées, etc ?
disneb a écrit:
donc on a pensé à une table par client mais je sais pas si c'est faisable ou pas
!!!
techniquement c'est tout à fait réalisable, par contre je m'interroge vraiment sur le bien-fondé de cette approche...
Une table par client, ça veut dire des états, rapports, scripts spécifiques pour chaque client, à moins de changer toutes tes requêtes de dw dynamiquement... Exemple une table générique CLIENT, des clients avec chacun leur table CLIENT_A, CLIENT_B...., tu as une requête qui affiche les données du client : SELECT * FROM CLIENT
En gros, avant chaque retrieve il faudrait d'abord regarder le client courant et faire un Replace( sql, 'CLIENT', 'CLIENT_X' ) dans le script de la dw....
Et si on te demande de faire un état récapitulatif de tous les clients ?
SELECT * FROM CLIENT_A UNION SELECT * FROM CLIENT_B UNION
Amha c'est une piste glissante, en principe un client = une ligne dans la table des clients, demande au DBA de rajouter de la RAM sur le serveur
Hors ligne








Tout à fait d'accord avec <imprononçable>
Ce que tu demande est possible, mais c'est une très mauvaise idée.
En faisant un select count(*) sur l'une des tables de mon client, j'ai : 186 284 664 lignes
Tous les jours, on insére quelque 120 000 lignes (ou 3 lignes toutes les 2 secondes).
Les SGBD sont faits pour gérer une grande quantité de données
Il te manque juste un index. Un dba ou un développeur expérimenté trouvera facilement l'index à créer
Hors ligne







F.B.I.
Fausse Bonne Idée

Hors ligne




merci à tous
comme je prépare mon memoire, je cherchais une idée originale pour optimiser, mais je vois que c'est une Fausse Bonne Idée apparemment
merci pour vos avis
Hors ligne