[Résolu] Compactage et ré-indexation sous Firebird
Modérateur : Vilains modOOs
Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
-
- Membre cOOnfirmé
- Messages : 297
- Inscription : 09 sept. 2010 19:06
[Résolu] Compactage et ré-indexation sous Firebird
Bonsoir à toutes et à tous,
Les méthodes CHECKPOINT DEFRAG et SHUTDOWN COMPACT ne fonctionne pas sous Firebird. Un essai avec la ré-indexation en SQL ex: (ALTER TABLE "Table1" ALTER COLUMN "ID" RESTART WITH 1) ne fonctionne pas non plus bien que ne générant pas de message d'erreur.
Ma question : comment compacter une base sous Firebird.
Pas trouvé grand chose sur le web sauf ceci avec un lien qui renvoi à la doc Firebird, mais il s'agit plus d'une réparation ou sauvegarde/restauration à l'aide d'un utilitaire GFIX et GBAK.
Merci d'avance
Les méthodes CHECKPOINT DEFRAG et SHUTDOWN COMPACT ne fonctionne pas sous Firebird. Un essai avec la ré-indexation en SQL ex: (ALTER TABLE "Table1" ALTER COLUMN "ID" RESTART WITH 1) ne fonctionne pas non plus bien que ne générant pas de message d'erreur.
Ma question : comment compacter une base sous Firebird.
Pas trouvé grand chose sur le web sauf ceci avec un lien qui renvoi à la doc Firebird, mais il s'agit plus d'une réparation ou sauvegarde/restauration à l'aide d'un utilitaire GFIX et GBAK.
Merci d'avance
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LO version 7.4.5.1 sous windows 10 et 11 standard, java 1.8.0_341
-
- IdOOle de la suite
- Messages : 25184
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: Compactage et ré-indexation sous Firebird
Tu mélanges des poires et des pommes. Chaque SGBD a un fonctionnement qui lui est propre.
Mis à part un tronc commun ISO/CEI 9075, les commandes SQL diffèrent ensuite.
Par exemple, MySQL utilise la fonction OPTIMIZE pour réorganiser le stockage physique ainsi que la réindexation des tables.
Pour Oracle, il existe des outils externes car les tables et les index sont localisés dans des espaces spécifiques (tablespace).
Même chose pour MS-SQL/Server où on a un niveau logique et physique de réorganisation.
Bref, des concepts qui te seront expliqués sur un forum dédié au SGBD que tu utilises.
Pour moi, HSQLDB reste un moteur pertinent car c'est une base qui se charge en mémoire et qui fonctionne en monoposte.
Le choix des développeurs de LibO de vouloir intégrer un SGBD sans se soucier de la pertinence du modèle client/serveur est une hérésie.
Mis à part un tronc commun ISO/CEI 9075, les commandes SQL diffèrent ensuite.
Par exemple, MySQL utilise la fonction OPTIMIZE pour réorganiser le stockage physique ainsi que la réindexation des tables.
Pour Oracle, il existe des outils externes car les tables et les index sont localisés dans des espaces spécifiques (tablespace).
Même chose pour MS-SQL/Server où on a un niveau logique et physique de réorganisation.
Bref, des concepts qui te seront expliqués sur un forum dédié au SGBD que tu utilises.
Pour moi, HSQLDB reste un moteur pertinent car c'est une base qui se charge en mémoire et qui fonctionne en monoposte.
Le choix des développeurs de LibO de vouloir intégrer un SGBD sans se soucier de la pertinence du modèle client/serveur est une hérésie.
-
- Membre cOOnfirmé
- Messages : 297
- Inscription : 09 sept. 2010 19:06
Re: Compactage et ré-indexation sous Firebird
Salut Dude,
J'ai compris depuis longtemps qu'un sgdb X ne peut pas comprendre les commandes qu'un sgdb Y (voir), mon problème n'est pas là.
Pour ma part HSQLDB ne pose pas de problème mis à part son côté monoposte, espérons qu'il reste opérationnel encore longtemps dans Base.
Puisque les développeurs de LO semble imposer Firebird comme seul sgdb dans les versions futures (voir les notes de versions de LO) j'ose espérer que le choix à été murement pensé et que l'on à pas sacrifier volontairement les applis sous HSQLDB à cours terme.
Ceci dit, curieux de nature, j'ai voulu tester Firebird en convertissant des applis que j'utilise depuis des années avec HSQLDB et contenant un nombres très important de lignes de macros et la comme je l'explique plus haut il faut adapter ou tout refaire. la première solution étant plus tentante que la deuxième on la teste. Actuellement la conversion de mes applis vers Firebird est pour moi une régression (ce qui ne veut pas dire que Firebird est mauvais). La deuxième solution n'étant pas envisageable, donc j'essai d'adapter en cherchant forcément des astuces.
Bref tu l'auras compris mon seul soucis est de passer d'un sgdb à l'autre le plus simplement possible.
plonge
J'ai compris depuis longtemps qu'un sgdb X ne peut pas comprendre les commandes qu'un sgdb Y (voir), mon problème n'est pas là.
Pour ma part HSQLDB ne pose pas de problème mis à part son côté monoposte, espérons qu'il reste opérationnel encore longtemps dans Base.
Puisque les développeurs de LO semble imposer Firebird comme seul sgdb dans les versions futures (voir les notes de versions de LO) j'ose espérer que le choix à été murement pensé et que l'on à pas sacrifier volontairement les applis sous HSQLDB à cours terme.
Ceci dit, curieux de nature, j'ai voulu tester Firebird en convertissant des applis que j'utilise depuis des années avec HSQLDB et contenant un nombres très important de lignes de macros et la comme je l'explique plus haut il faut adapter ou tout refaire. la première solution étant plus tentante que la deuxième on la teste. Actuellement la conversion de mes applis vers Firebird est pour moi une régression (ce qui ne veut pas dire que Firebird est mauvais). La deuxième solution n'étant pas envisageable, donc j'essai d'adapter en cherchant forcément des astuces.
Bref tu l'auras compris mon seul soucis est de passer d'un sgdb à l'autre le plus simplement possible.
plonge
LO version 7.4.5.1 sous windows 10 et 11 standard, java 1.8.0_341
-
- IdOOle de la suite
- Messages : 25184
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: Compactage et ré-indexation sous Firebird
Ah bon ? Et ta question est pourtant de trouver un équivalent à :plonge a écrit :J'ai compris depuis longtemps qu'un sgdb X ne peut pas comprendre les commandes qu'un sgdb Y, mon problème n'est pas là.
plonge a écrit :CHECKPOINT DEFRAG et SHUTDOWN COMPACT [qui] ne fonctionne pas sous Firebird
-
- Membre cOOnfirmé
- Messages : 297
- Inscription : 09 sept. 2010 19:06
Re: Compactage et ré-indexation sous Firebird
Evidemment puisque j'ai besoin de compacter automatiquement depuis une macro et que ces commandes n'existent pas dans Firebird. Ce que je cherche est un équivalent par macro, par assemblage de commandes ou autres peu importe.
LO version 7.4.5.1 sous windows 10 et 11 standard, java 1.8.0_341
-
- IdOOle de la suite
- Messages : 25184
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: Compactage et ré-indexation sous Firebird
Et bien je ne vois pas comment une macro pourrait exécuter quelque chose qui n'existe pas.plonge a écrit :Evidemment puisque j'ai besoin de compacter automatiquement depuis une macro et que ces commandes n'existent pas dans Firebird.
D'après ce qu'on peut lire sur Firebird notamment dans la documentation sur GFix, il n'y a pas besoin de compresser.
La méthode de nettoyage consiste simplement à effectuer une sauvegarde de la base de données.
Sauvegarde s'effectuant depuis cet utilitaire en ligne de commande.
Si macro il y a, ce serait donc via une instruction Shell.
Mais bon...
Dans mon 1er message, il y a écrit :des concepts qui te seront expliqués sur un forum dédié
-
- Membre cOOnfirmé
- Messages : 297
- Inscription : 09 sept. 2010 19:06
Re: Compactage et ré-indexation sous Firebird
Bizarre! je croyais justement que les macros permettaient d'aller plus loin que les commandes encapsulées .
Oui j'ai vu cette information qui précise qu'en principe il n'y a pas besoin de compressé si il y a sauvegarde (en principe!).
Je vais bien voir comment ce comporte une grosse base après utilisation et je reviendrais sur ce post.
Oui j'ai vu cette information qui précise qu'en principe il n'y a pas besoin de compressé si il y a sauvegarde (en principe!).
Je vais bien voir comment ce comporte une grosse base après utilisation et je reviendrais sur ce post.
LO version 7.4.5.1 sous windows 10 et 11 standard, java 1.8.0_341
-
- IdOOle de la suite
- Messages : 25184
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: Compactage et ré-indexation sous Firebird
Rien de bizarre puisque les macros ne sont qu'un moyen d'accès à l'API... d'OpenOffice.plonge a écrit :Bizarre! je croyais justement que les macros permettaient d'aller plus loin que les commandes encapsulées
-
- Membre lOOyal
- Messages : 35
- Inscription : 28 mai 2019 08:53
Re: Compactage et ré-indexation sous Firebird
Je fais mes débuts sur une Base Firebird intégrée. Est-ce qu'un export-import des données peut faire l'affaire ?Dude a écrit :D'après ce qu'on peut lire sur Firebird notamment dans la documentation sur GFix, il n'y a pas besoin de compresser.
La méthode de nettoyage consiste simplement à effectuer une sauvegarde de la base de données.
Sauvegarde s'effectuant depuis cet utilitaire en ligne de commande.
LibreOffice 6.3.5 X64 - Windows 10
-
- Membre cOOnfirmé
- Messages : 297
- Inscription : 09 sept. 2010 19:06
Re: Compactage et ré-indexation sous Firebird
Bonjour camil,
En toute logique l'import/export ne fait que copier des informations sans autre action.
En toute logique l'import/export ne fait que copier des informations sans autre action.
LO version 7.4.5.1 sous windows 10 et 11 standard, java 1.8.0_341
-
- Membre lOOyal
- Messages : 35
- Inscription : 28 mai 2019 08:53
Re: Compactage et ré-indexation sous Firebird
Bonjour,
Je pensais :
Une macro pour exporter les tables (en csv par exemple),
puis vider toutes les tables
et enfin autre macro qui importe les données à coup de INSERT.
Ca n'aurait aucun impact ?
Je pensais :
Une macro pour exporter les tables (en csv par exemple),
puis vider toutes les tables
et enfin autre macro qui importe les données à coup de INSERT.
Ca n'aurait aucun impact ?
LibreOffice 6.3.5 X64 - Windows 10
-
- Membre cOOnfirmé
- Messages : 297
- Inscription : 09 sept. 2010 19:06
Re: Compactage et ré-indexation sous Firebird
Re,
Peut être! Pas convaincu, ce qu'il faudrait simplement c'est recréer l'équivalent du 'Checkpoint defrag'. Quelque chose comme cela en Firebird
Peut être! Pas convaincu, ce qu'il faudrait simplement c'est recréer l'équivalent du 'Checkpoint defrag'. Quelque chose comme cela en Firebird
Code : Tout sélectionner
Sub CompacterBase()
Dim maRequete As Object
Dim SQL As String
Dim resultat As String
Dim login As String
Dim password As String
'Les paramètres de connexion
login = ""
password = ""
ThisDatabaseDocument.CurrentController.connect(login, password)
maConnexion = ThisDatabasedocument.CurrentController.ActiveConnection
If IsNull(maConnexion) then
MsgBox("Connexion non établie", 16)
End if
If NOT IsNull(maConnexion) = False then
MsgBox("Problème de connection : la connexion n'est pas établie")
End if
If NOT IsNull(maConnexion) = True then
If MsgBox("Voulez-vous compacter la base? ",289," ") = 1 Then
' Compactage base
SQL = "CHECKPOINT DEFRAG"
maRequete = maConnexion.createStatement()
resultat = maRequete.execute(SQL)
MsgBox("Compactage terminé ",48," ")
Else
Exit Sub
End If
End if
End Sub
LO version 7.4.5.1 sous windows 10 et 11 standard, java 1.8.0_341
-
- RespOOnsable forum
- Messages : 9256
- Inscription : 28 août 2010 08:45
Rappel des règles
Bonjour,
On vous rappelle que cette section n'est pas consacrée aux macros : lisez le bandeau rouge en haut de la page.
Merci de votre collaboration
On vous rappelle que cette section n'est pas consacrée aux macros : lisez le bandeau rouge en haut de la page.
Merci de votre collaboration
-
- IdOOle de la suite
- Messages : 25184
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: Compactage et ré-indexation sous Firebird
Il n'y a pis sourd que celui qui ne veut pas entendre.
C'est comme demander comment mettre du carburant dans une voiture électrique.
De toute façon, Firebird est considéré par les développeurs comme une fonctionnalité expérimentale.
Il est donc déconseillé de l'utiliser à ce stade.
En clair, il n'y a pas d'équivalent.dans la documentation sur GFix, il n'y a pas besoin de compresser.
C'est comme demander comment mettre du carburant dans une voiture électrique.
De toute façon, Firebird est considéré par les développeurs comme une fonctionnalité expérimentale.
Il est donc déconseillé de l'utiliser à ce stade.