Paramétrage optimal pour PCTFREE, PCTUSED et INITRANS, par Tom Kyte

Cet article est la traduction d’une réponse Tom Kyte à une question sur le paramétrage idéal de PCTFREE, PCTUSED et INITRANS (L’article original en anglais se trouve ici).

PCTFREE

Si vous avez une table qui ne subit que des inserts, mettez PCTFREE à 0, parce que vous n’avez rien à réserver pour les updates.

si vous savez une table dont les lignes doublent de taille, c’est une bonne idée de mettre PCTFREE à 50, pour réserver de la place pour les updates.

Vous devez comprendre comment les données grossissent dans le temps. Si vous faites des inserts, puis sur 10% de ces lignes vous faites des updates qui augmentent leur taille de 20%, alors vous devez:

  • savoir combien de lignes par bloc vous avez en moyenne
  • calculer ce que les 20% d’une ligne représentent en pourcentage de bloc.
  • utiliser ce pourcentage de bloc comme PCTFREE

PCTUSED

Et utilisez ASSM (automatic segment space management), la gestion automatique de l’espace libre des segments, et vous n’avez pas à vous soucier de PCTUSED, FREELISTS, FREELIST GROUPS.

INITRANS

Pour INITRANS, vous devez vous baser sur le nombre maximum de modifications concurrentes qu’il peut y avoir sur un bloc. Si vous avez une table qui ne reçoit que des inserts, et que vous êtes en ASSM, ne vous inquiétez pas et laissez la valeur par défaut. Si vous avez plutôt une petite table que vous updatez comme un fou, alors vous devez y réfléchir.
Lire la suite