
|  | 
| auteur : SheikYerbouti | 
| 
Comment calculer l'espace disque occupé par les objets Oracle
 En interrogeant la vue DBA_SEGMENTS :
 | 
SQL>COLUMNTABLEFORMAT A30SQL>COLUMNTaille FORMAT A15SQL>COLUMNTABLESPACEFORMAT A20SQL>SQL>SELECTsegment_name"TABLE"2,SUM(BYTES)/1024||'Ko'"Taille"3, blocks"Blocs"4, tablespace_name"TABLESPACE"5FROMdba_segments6WHEREsegment_type='TABLE'7ANDOWNER='FD'8GROUPBYsegment_name, tablespace_name, blocks9ORDERBYsegment_name ;TABLETaille               BlocsTABLESPACEADRESSE                        64Ko8USERS 
CONTACT                        64Ko8USERS 
DEPT                           64Ko8USERS 
EMP                            128Ko16USERS 
EMPLOYE                        64Ko8USERS 
FACTURE                        64Ko8USERS 
LOV_BLOCK                      64Ko8USERS 
LOV_COLONNE                    64Ko8USERS 
LOV_ELEMENT_COLONNE            64Ko8USERS 
LOV_ITEM                       64Ko8USERS 
LOV_LOV                        64Ko8USERS 
LOV_MODULE                     64Ko8USERS 
NOMBRES                        64Ko8USERS 
TELEPHONE                      64Ko8USERS 
TEST                           2048Ko256USERS 
TEST_LOV                       4096Ko512USERS 
TEST_TYPES                     64Ko8USERS 
TRACE                          64Ko8SYSTEM 
UTIL_PREFS                     64Ko8USERS 
UTIL_PREFS_ORDER               64Ko8USERS 
UTIL_PREFS_RECORD_ORDER        64Ko8USERS21ligne(s) sélectionnée(s).
 | 
Afficher la place occupée par toutes les tables d'un schéma particulier :
 | 
SQL>SELECTSUM(BYTES)/1024/1024||'Mo'"Taille"2,SUM(blocks)"Blocs"3FROMdba_segments4WHEREsegment_type='TABLE'5ANDOWNER='FD'6GROUPBYOWNER ; 
Taille               Blocs7,25Mo928
 | 
Afficher le cumul de volumétrie de tous les objets d'un schéma particulier :
 | 
SQL>SELECTSUM(BYTES)/1024/1024||'Mo'"Taille"2,SUM(blocks)"Blocs"3FROMdba_segments4WHEREOWNER='FD'; 
Taille               Blocs12,625Mo1616
 | 
 Afficher l'espace occupé par l'ensemble des schémas : 
 | 
SQL>SELECTSUM(BYTES)/1024/1024||'Mo'"Taille"2,SUM(blocks)"Blocs"3FROMdba_segments ; 
Taille               Blocs647,484375Mo82878
 | 
 | 
|  | 
| auteur : lalystar | 
| 
Pour fixer la valeur de certains paramètres de sessions automatiquement à chaque connection d'un utilisateur donné, 
le plus simple est d'utiliser un trigger au niveau de la base.Le trigger doit être créé en tant que SYS ou bien par un utilisateur ayant le privilège ADMINISTER DATABASE TRIGGER.
 | 
createorreplacetriggerTG_DB_AFTER_LOGON after logonondatabasebeginifuser='SCOTT'thenexecuteimmediate'alter session set sort_area_size=100000';endif;end;
 | 
Exemple d'utilisation :
 | 
SQL>connectsys/...assysdba
Connected.SQL>createorreplacetriggerTG_DB_AFTER_LOGON after logonondatabase2begin3ifuser='SCOTT'then4executeimmediate'alter session set sort_area_size=100000';5endif;6end;78/Triggercreated.SQL>show parameter sort_area_sizeNAMETYPEVALUE
sort_area_sizeinteger65536SQL>connectscott/...
Connected.SQL>show parameter sort_area_size;NAMETYPEVALUE
sort_area_sizeinteger100000
 | 
Ce genre de trigger est utile en particulier pour fixer les paramètres régionaux (séparateur décimal, séparateur de milliers...) 
indépendamment de la plateforme (Windows, Unix...) et de l'outil utilisé pour la connection (SQL*Plus, SQL*Loader, ...).
 
 | 
|  | 
| auteur : Jaouad | 
| | 
Createdatabaselink dblink_nameconnecttouseridentifiedbypasswordusing'(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = host)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = SID)))'
 | 
 | 
|  | 
| auteur : Jaouad | 
| 
Ici il s'agit d'utiliser les tables externes, fonctionnalité disponible à partir de la 9i :
 | 
createdirectory BDUMPas'background_dump_dest'createtablealert_log(textvarchar2(80))organizationexternal(typeoracle_loaderdefaultdirectory BDUMPaccessparameters (records delimitedbynewline)
location ('alert_SID.log')
)
reject limit1000;SQL>select*fromalert_log ;
 | 
 | 
|  | 
| auteur : Laurent Schneider | 
| 
La requête suivante permet d'afficher les directory, avec les propriétés suivantes :
| 
selectOWNER,
       DIRECTORY_NAME,
       DIRECTORY_PATHfromDBA_DIRECTORIESorderbyOWNER,
    DIRECTORY_NAME;
    
OWNER DIRECTORY_NAME  DIRECTORY_PATH
SYS   WORK_DIR/app/oracle/product/10.2.0.2/workSYS   TMP/tmp
SYS   DATA_PUMP_DIR/app/oracle/product/10.2.0.2/rdbms/log/SYS   ADMIN_DIR/app/oracle/product/10.2.0.2/md/admin
 | 
 | 
|  | 
| auteur : Pierre Forstmann | 
| 
Grâce au mécanisme de compilation automatique à l'exécution d'un objet invalide, 
Oracle va compiler toutes les vues dépendantes pour les exécuter lors de l'exécution d'une vue.
 La procédure suivante qui exécute "à vide" toutes les vues du schéma courant 
qui ne sont pas référencées dans d'autres vues va donc compiler toutes les vues du schéma courant:
 | 
createorreplaceprocedureeviscommvarchar2(100);
resint;beginforlvin(selectview_namefromuser_viewswherenotexists(selectreferenced_namefromuser_dependencieswherereferenced_name=view_name))loopcomm:='SELECT COUNT(*) FROM  '||lv.view_name||' WHERE 1=0';dbms_output.put_line(comm||' ...');
        executeimmediatecommintores;dbms_output.put_line('... OK.');endloop;end;/
 | 
Voici un exemple :
 | 
SQL>createtablet(xint, yint);Tablecreated.SQL>createviewv1asselectx,yfromt;Viewcreated.SQL>createviewv2asselectx,yfromv1wherex>=0;Viewcreated.SQL>createviewv3asselectx,yfromv2wherey>=0;Viewcreated.SQL>SQL>createviewv4asselectxfromt;Viewcreated.SQL>SQL>SQL>SQL>SQL>createorreplaceprocedurectv2is3commvarchar2(100);4begin5forlvin(selectview_namefromuser_views)6loop7comm:='ALTER VIEW '||lv.view_name||' COMPILE';8dbms_output.put_line(comm||' ...');9executeimmediatecomm;10dbms_output.put_line('... OK.');11endloop;12end;13/Procedurecreated.SQL>show errors
No errors.SQL>SQL>SQL>SQL>SQL>SQL>createorreplaceprocedurelsv(cvoutsys_refcursor)2is3begin4opencvfor5'select object_name, status from user_objects where object_type = ''VIEW'' ';6end;7/Procedurecreated.SQL>show errors
No errors.SQL>SQL>SQL>SQL>SQL>SQL>SQL>createorreplaceprocedureev2is3commvarchar2(100);4resint;5begin6forlvin(selectview_namefromuser_viewswherenotexists7(selectreferenced_namefromuser_dependencieswherereferenced_name=view_name))8loop9comm:='SELECT COUNT(*) FROM  '||lv.view_name||' WHERE 1=0';10dbms_output.put_line(comm||' ...');11executeimmediatecommintores;12dbms_output.put_line('... OK.');13endloop;14end;15/Procedurecreated.SQL>show errors
No errors.SQL>SQL>SQL>var rc refcursor;SQL>columnobject_name format a15SQL>SQL>SQL>SQL>SQL>setserveroutputon;SQL>altertabletadd(zchar(3));Tablealtered.SQL>exec lsv(:rc);
PL/SQLproceduresuccessfully completed.SQL>print :rc
OBJECT_NAME     STATUS                                                          
V1              INVALID                                                         
V2              INVALID                                                         
V3              INVALID                                                         
V4              INVALIDSQL>exec ev;SELECTCOUNT(*)FROMV4WHERE1=0...                                          
... OK.SELECTCOUNT(*)FROMV3WHERE1=0...                                          
... OK.                                                                         
PL/SQLproceduresuccessfully completed.SQL>exec lsv(:rc);
PL/SQLproceduresuccessfully completed.SQL>print :rc
OBJECT_NAME     STATUS                                                          
V1              VALID                                                           
V2              VALID                                                           
V3              VALID                                                           
V4              VALIDSQL>
 | 
 | 
|  | 
| auteur : Jaouad | 
| 
Voici la commande pour la Shared Pool  :
 | 
SQL>altersystem flush shared_pool2;
Système modifié.
 | 
Et celle pour vider le cache de données (10g) :
 | 
SQL>altersystem flush buffer_cache ;
Système modifié.
 | 
elle peut également recevoir les paramétres suivant : GLOBAL et CONTEXT
 
 | 
|  | 
| auteur : bouyao | 
| 
1. Il faut tout d'abord arrêter OMS :
 
Arrêter le service windows Oracle{oracle_home_name}ProcessManger 
ou, sous la ligne de commande Dos :
 
2. Vérifier que OMS est arrêté :
 
 
Vérifier la status du service Windows Oracle{oracle_home_name}ProcessManager 
ou, sous la ligne de commande Dos :
 
3. Se connecter à la base avec un privilège DBA, puis tapez la commande suivante :
 | 
SQL>ALTERUSERsysmanIDENTIFIEDBY'new_password';
 | 
4. Vérifier le nouveau mot de passe :
 | 
SQL>CONNECTsysman/nouveau_passe[@database_alias]
 | 
5. Dans $ORACLE_HOME/sysman/config
5.1 . Sauvegarder le fichier emoms.properties dans emoms.properties.orig
5.2 . Editer le fichier emoms.properties
a . Rechercher la ligne commencant par: oracle.sysman.eml.mntr.emdRepPwd= 
Remplacer la valeur encrypté par le nouveau mot de passe
b . Rechercher la ligne : oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE 
Remplacer TRUE par FALSE
6 . Redémarrer OMS
 
Démarrer le service Oracle{oracle_home_name}ProcessManager 
ou, sous la ligne de commande Dos :
 
7. Vérifier que oracle.sysman.eml.mntr.emdRepPwd est encrypté.
 
 | 
|  | 
| auteurs : bouyao, Fred_D | 
| 
Pour exécuter cette requête, il faut avoir le privilège DBA :
 | 
SELECTa.ksppinm Parametre,
       c.ksppstvl ValeurFROMx$ksppi a,
       x$ksppcv b,
       x$ksppsv cWHEREa.indx=b.indxANDa.indx=c.indxANDa.ksppinmLIKE'/_%'escape'/';
 | 
Normalement, les paramètres cachés commencent par un underscore ('_'),  
et dans la 10g, on a en plus les paramètres cachés qui commencent par deux underscore ('__').
 Attention :
 la modification de certains paramètres cachés peuvent corrompre votre base. Il faut les utiliser avec précautions !
 
 | 
						Consultez les autres F.A.Q's
					
		

 
Les sources présentées sur cette page sont libres de droits
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur.
Copyright © 2006 Developpez Developpez LLC.
Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne
peut être faite de ce site ni de l'ensemble de son contenu : textes, documents
et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez
selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
 
 
