Vous êtes sur la page 1sur 7

Optimisation modèle de données

Optimisation (1)
— Normalisez au maximum...
— Créez des tables les plus petites possible en externalisant dans des
tables de références toutes les informations susceptible d'être utilisées
plusieurs fois.
— Standardisez vos types de données et leur format en
utilisant des domaines.
— Vous n'aurez donc pas d'effort à à demander au SGBDR lors de
comparaisons sur des colonnes de contenu similaire (transtypage
implicite). En effet si vous voulez comparer le nom d'un client définit
comme VARCHAR(32) au nom d'un prospect défini comme
NCHAR(25), le SGBDR devra fournir un effort supplémentaire pour
homogénéiser les types de colonnes avant d'opérer la comparaison.
Optimisation (2)
— Préférez des clefs purement informatiques
— pour vos jointures plutôt que les clefs naturelles qui découlent
de votre analyse.
— Évitez les clefs composites.
— Préférez une clef purement informatique
Optimisation (3)
— Évitez les colonnes "nullables" (c'est à dire pouvant
possédez une valeur nulle) lorsque ces dernières doivent être
calculées.
— En particulier les données comptables et les colonnes
représentant des données booléennes. Préférez mettre la valeur
par défaut 0, sinon il vous faudra utiliser un opérateur
COALESCE ou CASE dans les requêtes effectuant une
opération arithmétique afin que les marqueurs NULL soient
pris en compte en tant que 0.
Optimisation (4)
— Utilisez au maximum les contraintes prévues dans la clause
CREATE avant de passer à une programmation de triggers.
— Par exemple préférez le ON DELETE SET NULL et un batch de nuit
pour une suppression en cascade plutôt que d'utiliser un trigger.
— Indexez l'essentiel, c'est à dire, les clefs primaires et
étrangères, les colonnes les plus sollicités en recherche et
jointure, etc... Jamais les colonnes de type BLOB ou texte libre !
(utiliser les index FULL-TEXT pour Blob et texte libre)
Optimisation (5)
— Dénormalisez à bon escient si tout le reste à échoué
dans votre recherche de gain de temps.
— Prévoyez le formatage de vos données avant toute
insertion ou mise à jour. Par exemple assurez vous qu'un
nom de personne soit toujours en majuscule sans blancs
parasite ni début ni en fin (TRIM + UPPER).
Optimisation (6)
— Interdisez les orphelins... Utiliser l'intégrité
référentielle et les triggers pour l'étendre afin de prévenir
toute ligne orpheline.
— Réindexez de temps à autres la base, surtout après
d'importantes mises à jour par lot.

Vous aimerez peut-être aussi