2011-01-03 4 views
0

On m'a demandé de mettre en œuvre une technique pour obtenir de meilleures performances de requête, ce qui est très nouveau pour moi.Optimisation des performances de requête

La technique est:

SELECT tab1.col1 
FROM tab1, tab2 
WHERE tab1.col1 = tab2.col2 
AND tab2.col3 = 'X' 
AND tab1.col4 = 'Y'; 

Dans la requête ci-dessus,

  1. Je dois créer deux tables sous forme de tableaux de références pour ceux utilisés disent ci-dessus tab3 pour tab1 et TAB4 pour tab2.
  2. Insérez les valeurs PK de tab1 et tab2 respectivement dans tab3 et tab4.
  3. Ajoutez une colonne à la fois dans tab3 et tab4 dites 'condition1' et mettez-la à jour avec les valeurs PK des enregistrements récupérés par la requête ci-dessus.
  4. Utilisez tab3 et tab4 dans les requêtes avec une coche sur la colonne 'condition1' IS NOT NULL.
  5. Écrit le déclencheur pour mettre à jour cette colonne sur n'importe quel DML dans les tables d'origine.

Cela peut sembler simple à un coup d'oeil, mais si les mêmes tables sont utilisées dans N requêtes avec différents prédicats, je dois ajouter N nombre de colonnes dans les nouvelles tables et les déclencheurs correspondants. Je crois qu'il s'agit d'une duplication de données et d'une charge énorme pour la base de données. Et cela ne contribuera pas à l'amélioration des performances.

Ce sera formidable si vous pouvez m'aider à sortir du dilemme de la mise en œuvre.

Merci à l'avance, Savitha

+3

Je pense que vous êtes vos collègues novices en développement de bases de données et avez besoin d'aide sérieuse pour un consultant Oracle. Quel est l'objectif final de cette base de données et combien de lignes par jour ajouterez-vous? Je n'ai pas l'intention d'être méchant, juste brutalement honnête. Parfois, la meilleure aide que nous pouvons fournir sur le SO est de vous dire que vous avez besoin de plus d'un peu d'aide. –

Répondre

2

Avez-vous vérifié que vous utilisez des index correctement?

+0

Je n'ai pas encore pensé aux index! Je dois mettre en œuvre la technique ci-dessus, que je sens visser la base de données. – Savitha

+0

Si vous ne répondez pas à la question mais en posez une, c'est un commentaire. –

+0

Avoir à? Je pense que vos instincts sont corrects, Savitha, vous ne devriez pas appliquer ce que vos collègues ont suggéré. Lire sur les index et une bonne architecture de base de données et vous serez en mesure de leur montrer une meilleure façon. – ScottCher

1

Ce type d'optimisation des performances semble être une mauvaise idée. Cela ressemble à une manière idiote de recréer un système d'index. Je conseillerais contre.

Questions connexes