Bonjour à tous :-)
Je suis à la recherche d'un outil / d'une commande capable de reconstruire tous les indexes d'une DB en une seule opération. Je sais qu'en général les indexes de Firebird n'ont pas besoin d'être reconstruits mais je vais vous parler d'un cas que j'ai vécu personnellement il y a deux semaines.
Notre application plantait misérablement lorsqu'on générait un rapport pour un client en particulier (pas sur les autres) et j'ai vite compris pourquoi en faisant un SELECT sur un numéro de commande, la requête tournait en rond sans jamais retourner de résultat. Sur d'autres numéros de commande tout fonctionnait parfaitement.
J'ai donc supprimé et recréé un index de cette table et tout est rentré dans l'ordre. C'était la première fois que je rencontrais un index corrompu dans Firebird !!! Je n'était pas du tout content ce jour-là...
Mais le pire c'est que depuis, mes collègues me réclament une fonction / une commande / un bouton qui leur permettrait de reconstruire tous les indexes d'une DB. Vu le nombre d'indexes qu'il y a, je n'ai pas osé dire qu'il faudrait les supprimer et les recréer un par un à la main.
Je sais aussi qu'un bon restore avec gbak serait la meilleure des solutions mais pour cela il faut que la base de données puisse être indisponible pendant une bonne demi-heure (le temps du restore). Ce n'est pas possible à part le dimanche.
C'est moi qui suis censé être le "spécialiste Firebird", mon collègue le plus acharné est encore dans le monde de l'orienté Fichier et là, c'est moi qui ai le bec dans l'eau, quand il me montre qu'il a une fonction "réindexer" pour tout reconstruire d'un clic de souris.
J'ai cherché sur le net, sur ce forum, dans le livre d'Helen Borrie, rien du tout.
Sauf de faire un restore avec gbak...
Si vous avez une solution, merci de m'en faire part :-)
Merci et bonne soirée...
Partager