HOW TO: Analyzing and Interpreting AWR Report

Hello

Today I wanted to share with you my personal approach for how to get into the details on AWR Report and where to see and where should be our attention. Keep in mind just two main focuses : the Application and the Database instance

1) Application: Most of the times you should go directly to review how was the SQL statements Performance. That is MANDATORY and the result of your analysis will be the classic TOP 10 SQL with the worst performance. That should be called : Oracle Application’s Performance Tuning .

2) Instance: read once, twice or three times the AWR looking for issues. What kind of issues or metrics ?

For example here I have  a Conclusion and Workaround for one database instance issue regarding performance :

1) Tuning recommendations for PROD-ACME  database instance:

AWR Report – How to get it through EM

We need a database user/pwd

….

But we can generate it using SQLPLUS as well :

AWR Snapshot Reports
Oracle provides reports that you can run to analyze the data in the AWR. These reports are much like the statspack reports prior to Oracle Database 10g. There are two reports: awrrpt.sql and awrrpti.sql, which are available in the directory $ORACLE_HOME/ rdbms/ admin.
The output of these reports is essentially the same, except that awrrpti.sql script allows you to define a specific instance to report on. The reports are much like the statspack reports of old, in that you define a beginning and ending snapshot ID, and the output filename of the report. Additionally, you can opt to produce the report in either text format or HTML format.

[oaPROD usa.com01 PROD] $ sqlplus ‘/as sysdba’
SQL> @awrrpt.sql

Current Instance   DB Id    DB Name      Inst Num Instance

HOWTO: Checking options installed within the Database/Oracle Home

1)From Oracle Universal Installer: In OUI select installed products and click on list and expand, you will see a list of options installed in database.

You have to use OUI to check whether Oracle Secure Enterprise Search is installed or not.

TIP: Start Oracle Universal Installer from your system prompt (UNIX) with the following command:

./runInstaller

2)From v$option:

SQL> set pages 100

SQL> select * from v$option;

PARAMETER                                                        VALUE

—————————————————————- —–

Partitioning                                                     TRUE

Objects                                                          TRUE

Real Application Clusters                                        FALSE

Advanced replication                                             TRUE

Bit-mapped indexes                                               TRUE

Connection multiplexing                                          TRUE

Connection pooling                                               TRUE

Database queuing                                                 TRUE

Incremental backup and recovery                                  TRUE

Instead-of triggers                                              TRUE

Parallel backup and recovery                                     TRUE

Parallel execution                                               TRUE

Parallel load                                                    TRUE

Point-in-time tablespace recovery                                TRUE

Fine-grained access control                                      TRUE

Proxy authentication/authorization                               TRUE

Forms in socket mode

Algun cliente alguna vez debe haber sufrido de un extraño issue con  los forms y se preguntara si vale la pena cambiarlos a ‘socket’ mode, y él se estará preguntando (con toda razón):

A.      When the forms are changed to socket mode:

1.      Will this affect the EBS application in anyway (will it be slow than now)

2.      Do we need to perform any change on our or the workstation’s side ?

ASSESSMENT AND SOLUTION

Please look at the Note in Metalink 310976.1. It seems that the Java Console in JInitiator tells you at the beginning which mode you are using.

Verifying the Forms Client Connection to the Forms Server

Once the Applet has initialized and started, it connects to the Forms Listener, using the serverPort, serverHost and connectMode parameters displayed in the Java console.  Steps to verify this are:

HOWTO : Getting User Responsability on EBS 11i using a Database user (BOLINF or APPS)

Find below the SQL statement to generate an extract with active users together with their active responsibilities.

The statement extracts all the active assignments of responsibilities by using the FND_USER_RESP_GROUPS table which combines DIRECT and INDIRECT responsibilities.

If you need only the DIRECT responsibilities than you also have the option to use the seeded view FND_USER_RESP_GROUPS_DIRECT. If you need only the INDIRECT responsibilities (added by roles – like Application Diagnostics and others) than use the seeded view FND_USER_RESP_GROUPS_INDIRECT.

As always adjust the SQL to cover your needs.

SELECT
fuser.USER_NAME USER_NAME
, per.FULL_NAME FULL_NAME
, per.EMPLOYEE_NUMBER EMPLOYEE_NUMBER
, frt.RESPONSIBILITY_NAME RESPONSIBILITY
FROM
FND_USER fuser
, PER_PEOPLE_F per
, FND_USER_RESP_GROUPS furg
, FND_RESPONSIBILITY_TL frt
WHERE
fuser.EMPLOYEE_ID = per.PERSON_ID
AND fuser.USER_ID = furg.USER_ID
AND (to_char(fuser.END_DATE) is null
OR fuser.END_DATE > sysdate)
AND frt.RESPONSIBILITY_ID = furg.RESPONSIBILITY_ID
AND (to_char(furg.END_DATE) is null
OR furg.END_DATE > sysdate)
AND frt.LANGUAGE = ‘US’
ORDER BY
, fuser.USER_NAME;

SQLITE3 – La base de datos de Android

Hola again,

bueno, me ha tocado lidiar con Android y por esas cosas de la vida me puse a investigar si trae una base de datos, yyyyyyy SURPRISE!!

SI: se llama SQLITE y en Android 2.3.x va en la version 3.0.8

Bueno, si desean saber un poco de historia,
SQLITE clasifica como SQL database engine, osea, un motor de bd. y lo mejor que el codigo es de dominio publico, y si te lo compran…puedes venderlo!..

SQLITE esta mantenido y fue creado por un consorcio de 23 miembros, la mayoria son empresas, las cuales se comprometieron a darle
vitalidad e independencia a SQLite. El contrato esta en un Staff de abogados llamado Hipp, Wyrick & Company, Inc.. por si quieres unirteles.

Dejemonos de chachara y vamos a crear nuestra primera base de datos con tablas dentro, las cuales creare en mi telefono, desde mi Laptop :

Comandos utiles para hacer limpieza en Oracle sobre UNIX

Todos sabemos que para administrar una base de datos Oracle sobre UNIX necesitamos obligatoriamente tener cierto control sobre el sistema operativo, y poder mantener «la casa ordenada» en la cual vive nuestra base de datos.

Uno de las labores que normalmente los ingenieros de sistemas delegan a los DBAs es que se hagan cargo de sus filesystems (filesystem con owner oracle), entonces necesitaremos por ejemplo buscar los logs que crecen, los archivos que han crecido demasiado y quiza no son parte de Oracle, core dump y otros.

Para esto usemos lo siguiente :

1) Buscar archivos grandes (sobre 2MB)

# para esto usaremos el comando find con parametros, y salida la ordenaremos de forma numérica por tamaño :

find / -size +2000 -exec ls -s {} ; | sort -nr >large_files.out

# Un ejemplo del archivo generado sería:

cat large_files.out

18916604 /home/jacevedofl/.VirtualBox/HardDisks/Winblows XP.vdi

¿Cual es la diferencia entre ROW CHAINING y ROW MIGRATION?

Ok, este es un tema clásico de Oracle que clásicamente induce a confusión para aquellos que no tienen claros conceptos como block size, bloque de base de datos y bloque de S.O., extent, y mucha otra teoría.

Una fila migrada se migra ya que fue movida a otro bloque debido a que un UPDATE la hizo muy grande para que su tamaño calce dentro del bloque original junto a las otras filas de allí. Otra acotación es que no podemos solo ‘mover’ la fila ya que tenemos un montón de índices apuntando al bloque original.

Una fila encadenada es demasiado grande para caber en un solo bloque, entonces si tenemos el tamaño del bloque de la base de 2K pero el tamaño de mi fila es de 4K, usaremos 3 bloques de la base para almacenar esa fila en partes. Cualquier tabla cuyo tamaño de fila excede el bloque de la base de datos tendrá CHAINED ROWS.

¿Cual sería el procedimiento para aplicar un parche de una base Oracle?

Mi procedimiento generalmente usado es :
1) Bajar el parche/patchset
2) Verificar los requerimientos del parchado: versiones de oui,opatch, rapidclone.
3) Verificar los requerimientos del sistema: parches del sistema operativo y pre-requisitos del sistema operativo.
4) Ejecutar tareas de preinstalación: verificar usuarios a usar, claves, sistemas impactados, riesgos, pasos a ejecutar para RAC, bajar instancia y listener, respaldar la base de datos, requisitos para los parámetros del kernel.
5) Chequear el contexto del sistema: nodos del RAC impactado, nodos de la base Standby o Dataguard, Options instaladas en la base, aplicaciones impactadas, en general se debe hacer un plan de pruebas como resultado de este paso.
6) Aplicación del parche: configurar el ambiente y la variable DISPLAY, ejecutar OUI (patchset) y aplicar el parche .
7) Ejecutar scripts de post-aplicación del parche.
8) Tareas de post-instalación.

1 2