Modifier plus d'une colonne dans une table oracle
Les deux scripts ci-dessous (pour la modification d'un tableau) faire la diff..??
script 1 :
alter table ACNT_MGR_HSTRY add DM_BTNUMBER DATA_TYPE ;
alter table ACNT_MGR_HSTRY add DM_BTID DATA_TYPE ;
alter table ACNT_MGR_HSTRY add DM_USERID DATA_TYPE ;
alter table ACNT_MGR_HSTRY add DM_WSID DATA_TYPE ;
script 2 :
alter table ACNT_MGR_HSTRY
add
(
DM_BTNUMBER DATA_TYPE,
DM_BTID DATA_TYPE,
DM_USERID DATA_TYPE,
DM_WSID DATA_TYPE
);
sera mise à jour apporte une diff..???
update OPERATIONAL_UNIT
set ( BANK_ID=
ENTY_CODE_ID=
TIME_ZONE=
DM_BTNUMBER=
DM_BTID=
DM_USERID=
DM_WSID=
);
-----------
update OPERATIONAL_UNIT set BANK_ID=;
update OPERATIONAL_UNIT set ENTY_CODE_ID=;
update OPERATIONAL_UNIT set TIME_ZONE=;
update OPERATIONAL_UNIT set DM_BTNUMBER=;
update OPERATIONAL_UNIT set DM_BTID=;
update OPERATIONAL_UNIT set DM_USERID=;
update OPERATIONAL_UNIT set DM_WSID=;
Vous pouvez spécifier quelle différence est-ce que vous devez savoir. Vont-ils faire de même? Je ne sais pas oracle, mais je dirais oui. Lequel est le plus rapide? Laquelle est la plus correcte? Aucune idée.
OriginalL'auteur sridevi | 2011-03-30
Vous devez vous connecter pour publier un commentaire.
Les deux exemples sont équivalentes.
Je n'ai jamais utilisé les déclarations que vous avez dans le premier exemple
; je ne sais pas si c'est possible que vous n'obteniez pas un message d'erreur si vous utilisez le deuxième exemple de format dans le cas d'une erreur.. Gary Myers confirmé ma conviction:Pour la plupart les mêmes. Si, par exemple, DM_WSID déjà existé, alors la déclaration pertinente serait un échec. Dans le script 1, vous obtiendrez trois colonnes ajouté. Dans le script 2 vous ne le soit pas. Si vous avez des déclencheurs DDL ou de la VÉRIFICATION, puis ils vont me faire virer plusieurs fois pour le cas 1. Script 1 vont commettre plusieurs fois et PEUT attendre d'un verrou de table exclusif à plusieurs reprises.
Vous êtes inquiet au sujet de la performance pour des instructions DDL?! Je pense qu'il y a des zones plus digne de votre attention à l'amélioration de la performance.
Je vais être en cours d'exécution un seul script sql pour modifier >50 tables ajout d'une moyenne de 15 colonnes de chaque table...donc je voulais savoir quelle méthode serait la fionie..!!! Merci pour votre aide..!!
L'ajout de colonnes est assez rapide; c'est la manipulation des données qui pourraient avoir lieu par la suite que vous regardez pour optimiser les performances, tout en étant très prudent sur l'AQ ces changements.
OriginalL'auteur OMG Ponies
Script 2 sera généralement effectuer beaucoup mieux que le script 1. Groupement des changements similaires et de les exécuter une fois pour toutes est presque toujours plus rapide. Mais la vraie question est, est la différence significative?
Basé sur votre commentaire à propos de 50 tables avec 15 colonnes de chacun, je dirais que la différence est assez importante, et peut-être très importantes selon votre configuration.
Juste hier, j'ai fait presque exactement le même changement, la modification environ 30 colonnes pour environ 100 tables. L'exécution du script en local à l'aide de SQL*Plus, le temps a diminué de 2 minutes 4 secondes. La plupart du temps a probablement passé la communication entre SQL*Plus et la base de données. Si vous avez un SQL*Plus de script qui doit être exécuté à distance ces voyages aller-retour pourrait rendre votre script douloureusement lent.
Myers:se faire une diff dans la mise à jour...pls voir la question pour l'échantillon de mise à jour stmts...toute aide est grandement appréciée..
Le réglage de toutes les colonnes dans un tableau permettra d'économiser beaucoup de ressources. Les étapes de base pour la réalisation de ces états sont les suivants: 1) envoyer de déclaration de base de données, 2) analyser l'énoncé, 3) bloc de lecture(s), 4) de modifier les données, 5) écriture de bloc(s), 6) envoyer le résultat au client. À l'aide de plusieurs mises à jour que vous avez à faire chaque étape 7 fois. Avec un total combiné de mettre à jour uniquement les bas prix de l'étape #4 est effectuée 7 fois. Si vous avez beaucoup de données ou d'un réseau lent, la différence peut être énorme. Vous pouvez ainsi toujours faire les choses de la méthode efficace, alors vous n'aurez pas à vous inquiéter à ce sujet plus tard.
OriginalL'auteur Jon Heller
D'une façon de plus nous pouvons Modifier nos Colonnes de bracketing chaque colonne que nous avons besoin de la modifier .
Voici L'exemple :-
OriginalL'auteur burhanuddin abbas