|
auteur : SheikYerbouti |
Comment calculer l'espace disque occupé par les objets Oracle
En interrogeant la vue DBA_SEGMENTS :
SQL > COLUMN TABLE FORMAT A30
SQL > COLUMN Taille FORMAT A15
SQL > COLUMN TABLESPACE FORMAT A20
SQL >
SQL > SELECT segment_name " TABLE "
2 , SUM (BYTES) / 1024 | | ' Ko ' " Taille "
3 , blocks " Blocs "
4 , tablespace_name " TABLESPACE "
5 FROM dba_segments
6 WHERE segment_type = ' TABLE '
7 AND OWNER = ' FD '
8 GROUP BY segment_name, tablespace_name, blocks
9 ORDER BY segment_name ;
TABLE Taille Blocs TABLESPACE
ADRESSE 64Ko 8 USERS
CONTACT 64Ko 8 USERS
DEPT 64Ko 8 USERS
EMP 128Ko 16 USERS
EMPLOYE 64Ko 8 USERS
FACTURE 64Ko 8 USERS
LOV_BLOCK 64Ko 8 USERS
LOV_COLONNE 64Ko 8 USERS
LOV_ELEMENT_COLONNE 64Ko 8 USERS
LOV_ITEM 64Ko 8 USERS
LOV_LOV 64Ko 8 USERS
LOV_MODULE 64Ko 8 USERS
NOMBRES 64Ko 8 USERS
TELEPHONE 64Ko 8 USERS
TEST 2048Ko 256 USERS
TEST_LOV 4096Ko 512 USERS
TEST_TYPES 64Ko 8 USERS
TRACE 64Ko 8 SYSTEM
UTIL_PREFS 64Ko 8 USERS
UTIL_PREFS_ORDER 64Ko 8 USERS
UTIL_PREFS_RECORD_ORDER 64Ko 8 USERS
21 ligne(s) sélectionnée(s).
|
Afficher la place occupée par toutes les tables d'un schéma particulier :
SQL > SELECT SUM (BYTES) / 1024 / 1024 | | ' Mo ' " Taille "
2 , SUM (blocks) " Blocs "
3 FROM dba_segments
4 WHERE segment_type = ' TABLE '
5 AND OWNER = ' FD '
6 GROUP BY OWNER ;
Taille Blocs
7 ,25Mo 928
|
Afficher le cumul de volumétrie de tous les objets d'un schéma particulier :
SQL > SELECT SUM (BYTES) / 1024 / 1024 | | ' Mo ' " Taille "
2 , SUM (blocks) " Blocs "
3 FROM dba_segments
4 WHERE OWNER = ' FD ' ;
Taille Blocs
12 ,625Mo 1616
|
Afficher l'espace occupé par l'ensemble des schémas :
SQL > SELECT SUM (BYTES) / 1024 / 1024 | | ' Mo ' " Taille "
2 , SUM (blocks) " Blocs "
3 FROM dba_segments ;
Taille Blocs
647 ,484375Mo 82878
|
|
|
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.
create or replace trigger TG_DB_AFTER_LOGON after logon on database
begin
if user = ' SCOTT ' then
execute immediate ' alter session set sort_area_size=100000 ' ;
end if ;
end ;
|
Exemple d'utilisation :
SQL > connect sys/ ... as sysdba
Connected.
SQL > create or replace trigger TG_DB_AFTER_LOGON after logon on database
2 begin
3 if user = ' SCOTT ' then
4 execute immediate ' alter session set sort_area_size=100000 ' ;
5 end if ;
6 end ;
7
8 /
Trigger created.
SQL > show parameter sort_area_size
NAME TYPE VALUE
sort_area_size integer 65536
SQL > connect scott/ ...
Connected.
SQL > show parameter sort_area_size;
NAME TYPE VALUE
sort_area_size integer 100000
|
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 |
Create database link dblink_name
connect to user identified by password
using ' (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 :
create directory BDUMP as ' background_dump_dest '
create table alert_log(text varchar2 (80 ))
organization external
(
type oracle_loader
default directory BDUMP
access parameters (records delimited by newline)
location (' alert_SID.log ' )
)
reject limit 1000 ;
SQL > select * from alert_log ;
|
|
|
auteur : Laurent Schneider |
La requête suivante permet d'afficher les directory, avec les propriétés suivantes :
select OWNER,
DIRECTORY_NAME,
DIRECTORY_PATH
from DBA_DIRECTORIES
order by OWNER,
DIRECTORY_NAME;
OWNER DIRECTORY_NAME DIRECTORY_PATH
SYS WORK_DIR / app/ oracle/ product/ 10 .2 .0 .2 / work
SYS 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:
create or replace procedure ev
is
comm varchar2 (100 );
res int ;
begin
for lv in (select view_name from user_views where not exists
(select referenced_name from user_dependencies where referenced_name = view_name))
loop
comm := ' SELECT COUNT(*) FROM ' | | lv.view_name | | ' WHERE 1=0 ' ;
dbms_output .put_line (comm | | ' ... ' );
execute immediate comm into res;
dbms_output .put_line (' ... OK. ' );
end loop ;
end ;
/
|
Voici un exemple :
SQL > create table t(x int , y int );
Table created.
SQL > create view v1 as select x,y from t;
View created.
SQL > create view v2 as select x,y from v1 where x > = 0 ;
View created.
SQL > create view v3 as select x,y from v2 where y > = 0 ;
View created.
SQL >
SQL > create view v4 as select x from t;
View created.
SQL >
SQL >
SQL >
SQL >
SQL > create or replace procedure ctv
2 is
3 comm varchar2 (100 );
4 begin
5 for lv in (select view_name from user_views)
6 loop
7 comm := ' ALTER VIEW ' | | lv.view_name | | ' COMPILE ' ;
8 dbms_output .put_line (comm | | ' ... ' );
9 execute immediate comm;
10 dbms_output .put_line (' ... OK. ' );
11 end loop ;
12 end ;
13 /
Procedure created.
SQL > show errors
No errors.
SQL >
SQL >
SQL >
SQL >
SQL >
SQL > create or replace procedure lsv(cv out sys_refcursor)
2 is
3 begin
4 open cv for
5 ' select object_name, status from user_objects where object_type = ' ' VIEW ' ' ' ;
6 end ;
7 /
Procedure created.
SQL > show errors
No errors.
SQL >
SQL >
SQL >
SQL >
SQL >
SQL >
SQL > create or replace procedure ev
2 is
3 comm varchar2 (100 );
4 res int ;
5 begin
6 for lv in (select view_name from user_views where not exists
7 (select referenced_name from user_dependencies where referenced_name = view_name))
8 loop
9 comm := ' SELECT COUNT(*) FROM ' | | lv.view_name | | ' WHERE 1=0 ' ;
10 dbms_output .put_line (comm | | ' ... ' );
11 execute immediate comm into res;
12 dbms_output .put_line (' ... OK. ' );
13 end loop ;
14 end ;
15 /
Procedure created.
SQL > show errors
No errors.
SQL >
SQL >
SQL > var rc refcursor;
SQL > column object_name format a15
SQL >
SQL >
SQL >
SQL >
SQL > set serveroutput on ;
SQL > alter table t add (z char (3 ));
Table altered.
SQL > exec lsv(:rc);
PL/ SQL procedure successfully completed.
SQL > print :rc
OBJECT_NAME STATUS
V1 INVALID
V2 INVALID
V3 INVALID
V4 INVALID
SQL > exec ev;
SELECT COUNT (* ) FROM V4 WHERE 1 = 0 ...
... OK.
SELECT COUNT (* ) FROM V3 WHERE 1 = 0 ...
... OK.
PL/ SQL procedure successfully completed.
SQL > exec lsv(:rc);
PL/ SQL procedure successfully completed.
SQL > print :rc
OBJECT_NAME STATUS
V1 VALID
V2 VALID
V3 VALID
V4 VALID
SQL >
|
|
|
auteur : Jaouad |
Voici la commande pour la Shared Pool :
SQL > alter system flush shared_pool
2 ;
Système modifié.
|
Et celle pour vider le cache de données (10g) :
SQL > alter system 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 > ALTER USER sysman IDENTIFIED BY ' new_password ' ;
|
4. Vérifier le nouveau mot de passe :
SQL > CONNECT sysman/ 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 :
SELECT a.ksppinm Parametre,
c.ksppstvl Valeur
FROM x$ksppi a,
x$ksppcv b,
x$ksppsv c
WHERE a.indx = b.indx
AND a.indx = c.indx
AND a.ksppinm LIKE ' /_% ' 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.