Quisiera platicarles un caso en que me fue de mucha utilidad.

 

Resulta que a cierta hora del día la aplicación de mi cliente comenzaba a degradarse, ya que un procedure pasaba de tener un tiempo de respuesta en milisegundos a segundos en cualquier momento. Generábamos estadísticas para las tablas involucradas y el comportamiento seguía igual. Probamos ejecutarlo desde TOAD y se ejecuto rapidísimo, eso me pareció muy extraño ya que después de ejecutarlo por medio de TOAD comenzó a funcionar de nuevo desde la aplicación en milisegundos. Bueno pues me vino a la mente el parámetro plsql_optimize_level, el cual en 10g esta por default en 2 y en toad también por default lo pone en dos. Pues usando el método que les doy a continuación, me permitió saber que la aplicación le ponía a la sesión el parámetro 0, lo que hacía que se generara un plan de ejecución menos eficiente.Lo que hicimos fue cambiar este parámetro desde la aplicación y el problema quedo corregido.

Bueno pues este procedimiento que les muestro, nos sirve para ver que parámetros de sesión tiene definido un usuario en particular dentro de la base de datos.

Primero hacemos un select para identificar las sesiones de la aplicación y seleccionamos el spid.

SQL:dbserver:(orcl)> select s.sid, p.spid,s.username,
TO_CHAR(s.logon_time, 'MM/DD/YY HH24:MI:SS') from v$session s, v$process p where s.paddr=p.addr and s.username = 'USER1'; 2 3 4 SID SPID USERNAME TO_CHAR(S.LOGON_T ---------- ------------ ------------------------------ ----------------- 471 30718 USER1 06/23/11 19:19:20 448 7987 USER1 06/24/11 02:15:22 416 8283 USER1 06/23/11 17:58:41

Posteriormente desde sqlplus ejecutamos los siguientes comandos anexando el spid de la sesión que nos interesa:

SQL:dbserver:(orcl):PRIMARY> oradebug setospid 7987;

Oracle pid: 64, Unix process pid: 7987, image: oracle@dbserver

SQL:dbserver:(orcl):PRIMARY> oradebug dump modified_parameters 1;
Statement processed.

Esto nos dejará un archivo trace en el directorio udump de oracle

dbserver(oracle):orclI1:udump$ cat orcli1_ora_8283.trc
Dump file /app/ora/local/admin/orcl/udump/orcli1_ora_8283.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Oracle Label Security, OLAP,
Data Mining Scoring Engine and Real Application Testing options
ORACLE_HOME = /app/ora/local/product/10.2.0.4/db_6
System name:    Linux
Node name:      dbserver
Release:        2.6.18-194.11.4.el5
Version:        #1 SMP Fri Sep 17 04:57:05 EDT 2010
Machine:        x86_64
Instance name: orclI1
Redo thread mounted by this instance: 1
Oracle process number: 82
Unix process pid: 8283, image: oracle@dbserver

*** 2011-06-24 07:28:18.657
*** ACTION NAME:(Initialized) 2011-06-24 07:28:18.656
*** MODULE NAME:(USER1) 2011-06-24 07:28:18.656
*** SERVICE NAME:(orcl) 2011-06-24 07:28:18.656
*** SESSION ID:(416.921) 2011-06-24 07:28:18.656
Received ORADEBUG command 'dump modified_parameters 1' 
from process Unix process pid: 10443, image: DYNAMICALLY MODIFIED PARAMETERS: plsql_optimize_level = 0

Aquí podemos ver que plsql_optimize_level tiene un valor de 0.

You are not authorised to post comments.

Comments powered by CComment

DBASupport - Foro

Mirroring con estados disconnected
Hola, el día de hoy después de reiniciar mi servidor de destino a donde realizo el mirroring ya no pude replicar más, el error que muestra es que...

Se me duplica el mensaje en /etc/motd
  • Topic started by agamez
  • in General
  • 5 months ago.
  • 5 months ago.
  • 2 replies
Buen día, alguien tiene idea porque después de actualizar a fedora 28 se me esta duplicando la salida de mi /etc/motd?

Cómo puedo filtrar un mensaje en el log messages
  • Topic started by carlos25
  • in General
  • 9 months ago.
  • 9 months ago.
  • 2 replies
Buenos días, estoy recibiendo en mi log de errores muchos mensajes de cron, ya que tengo varios crones configurados en mi server. Existe alguna...

Cómo validar la hora de ejecución de un proceso
Hola, estoy tratando de validar que un proceso sólo pueda ser ejecutado dentro de un periodo de tiempo, en este caso entre las 7:00 AM y las 7:00...

Estadisticas en la base de datos
Buenos días, estoy teniendo problemas de performance en mis queries y quisiera saber como puedo validar que mis tablas tienen las estadisticas...
URGE AYUDA
  • Topic started by
  • in General
  • 13 years ago.
  • 13 years ago.
  • 30 replies
HOLA ESPERO ME PUEDAN AYUDAR. TEN GO UNA TABLA CON una estructura similar a la siguiente: id_mov cargo subtotal total...

Duada de Memoria de SQL Server 2005
  • Topic started by Erzengel
  • in General
  • 9 years ago.
  • 8 years ago.
  • 30 replies
Buen Día Recurro nuevamente a su sabiduría. Quiero saber el porque tiene un tope SQL Serever de 2GB en Windows server 2003 de 32 bit y si alguien...

SqlDateTime overflow
  • Topic started by
  • in General
  • 12 years ago.
  • 12 years ago.
  • 11 replies
Alguno de ustedes ha tenido este problema: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.' Les...

problemas para iniciar el agente sql
  • Topic started by acgch
  • in General
  • 12 years ago.
  • 12 years ago.
  • 11 replies
Recientemente para asegurar el sql server 2005, cree una cuenta sql con derechos de sysadmin y borre el grupo BUILTIN\Administradores para evitar...

Problemas para levantar mirror
  • Topic started by acgch
  • in General
  • 11 years ago.
  • 11 years ago.
  • 16 replies
Hola amigos, tengan un buen día, les comento que estoy configurando mirror siguiendo los pasos a través del wizard del managment studio y también...
Mirroring con estados disconnected
Hola, el día de hoy después de reiniciar mi servidor de destino a donde realizo el mirroring ya no pude replicar más, el error que muestra es que...

Se me duplica el mensaje en /etc/motd
  • Topic started by agamez
  • in General
  • 5 months ago.
  • 5 months ago.
  • 2 replies
Buen día, alguien tiene idea porque después de actualizar a fedora 28 se me esta duplicando la salida de mi /etc/motd?

Cómo puedo filtrar un mensaje en el log messages
  • Topic started by carlos25
  • in General
  • 9 months ago.
  • 9 months ago.
  • 2 replies
Buenos días, estoy recibiendo en mi log de errores muchos mensajes de cron, ya que tengo varios crones configurados en mi server. Existe alguna...

Cómo validar la hora de ejecución de un proceso
Hola, estoy tratando de validar que un proceso sólo pueda ser ejecutado dentro de un periodo de tiempo, en este caso entre las 7:00 AM y las 7:00...

Estadisticas en la base de datos
Buenos días, estoy teniendo problemas de performance en mis queries y quisiera saber como puedo validar que mis tablas tienen las estadisticas...
Deshabilitar todos los jobs
  • Topic started by agamez
  • in Jobs
  • one year ago.
  • one year ago.
  • 1 reply
Buenos días, alguien sabe como puedo deshabilitar rapidamente todos los jobs de SQL Server, gracias.

Mirroring con estados disconnected
Hola, el día de hoy después de reiniciar mi servidor de destino a donde realizo el mirroring ya no pude replicar más, el error que muestra es que...

Se me duplica el mensaje en /etc/motd
  • Topic started by agamez
  • in General
  • 5 months ago.
  • 5 months ago.
  • 2 replies
Buen día, alguien tiene idea porque después de actualizar a fedora 28 se me esta duplicando la salida de mi /etc/motd?

Cómo puedo filtrar un mensaje en el log messages
  • Topic started by carlos25
  • in General
  • 9 months ago.
  • 9 months ago.
  • 2 replies
Buenos días, estoy recibiendo en mi log de errores muchos mensajes de cron, ya que tengo varios crones configurados en mi server. Existe alguna...

Cómo validar la hora de ejecución de un proceso
Hola, estoy tratando de validar que un proceso sólo pueda ser ejecutado dentro de un periodo de tiempo, en este caso entre las 7:00 AM y las 7:00...

Necesitas Soporte

Proveemos soporte de base de datos SQL Server, Sybase, Oracle y MySQL. Nuestro servicio, le permite contar con un experto las 24 horas al día los 365 días del año.

Nuestros servicios están diseñados para que solo pague por el soporte que necesita. El pago se realiza de manera mensual basado en el nivel de cobertura que requiera. En promedio este costo va de un 30% a un 60% menos, de lo que le pagaría a un DBA en sitio.

Contactanos