Friday, May 25, 2007

Few ORACLE Thoughts
=====================================
For ORACLE Applications 11i - Custom objects
Oracle recommends you use at least four characters ,
then followed by an underscore in your naming convention for your custom application objects. (e.g. XBOL_ or a four letter code for your complay name e.g ORCL_)
Oracle usually uses any two or three characters followed by an underscore for standard Oracle objects.
So to be on safer side the best practice is to create a custom scheam for all custom objects,
and then give access right to apps and other required scheams.
Then create synonyms in Apps for these custom objects.
=====================================

If you are a Apps DBA ,
it can can be dubious which database you are connected to - e.g. Prod, Test, Dev.
To Avoid this confusion go to your Systems Administrator responsibility and change the Profile option called 'Site Name'.
Set this to SID / Instance / or a user friendly name.
This will be shown as the title of the forms window. and as well as Help > About Oracle Applications will display this.
=====================================

If a column contains no NULLs then create a NOT NULL constraint
in cases where it will improve the quality of information available to the Cost Based Optimizer
The CBO makes different decisions based on whether it is possible for a column to contains NULLs

=====================================

Few things to look at long running import

Free MB from dba_free_space--- Should be reducing in a timly manner
> select sum(bytes)/1024/1024 Free_MB from dba_free_space;

Last DDL Time---There should not be too much diff between sysdate and last_ddl
> select TO_CHAR((MAX(LAST_DDL_TIME)),'"'DD-MON-YYYY HH24:MI:SS'"') LAST_DDL,
TO_CHAR(sysdate,'"'DD-MON-YYYY HH24:MI:SS'"') sys_date from dba_objects;

Tablespace where 80% is Full--- Add space to the tablespaces listed in the result.
> select a.TABLESPACE_NAME, a.MAX, b.USED, round((b.USED/a.MAX)*100,2) PCT
from (select TABLESPACE_NAME, sum(MAXBYTES/1024/1024) MAX from dba_Data_files group by TABLESPACE_NAME) a,
(select tablespace_name, sum(bytes/1024/1024) USED from dba_segments group by tablespace_name) b
where a.TABLESPACE_NAME=b.TABLESPACE_NAME and b.USED > a.MAX *(80/100);