archivo trace Oracle

5 replies [Último envío]
Offline
Joined: 26/07/2012
Puntos: 5

Hola buen dia a todos :)

Un gusto saludarles

Posteo el siguiente problema agradeciendo de antemano la ayuda que me puedan brindar.

Les cuento, hacemos selects a unas tablas a las cuales accesamos a través de un dblink, pero cuando las ejecutamos y revisamos el archivo trace nos salen ejecutadas una consultas del tipo select * from a las tablas q utlizamos en la query que ejecutamos, ahora claro que no ejecutamos los select * from, creemos q por alguna razon Oracle los ejecuta, es posible eso? y hay alguna manera de evitarlo?Si necesitan mas información estaremos pendientes de su respuesta.

Gracias por su ayuda

Saludos :)

Imagen de carlos
Conectado
Joined: 28/12/2005
Puntos: 1055

Yo no he visto nunca que el motor de base de datos se haya 'inventado' una select. La consulta tiene que venir de algún sitio.

En estos casos lo más habitual es que haya implicada alguna vista, y que la 'select fantasma' se encuentre en la definición de la vista, o en alguna función que se pueda utilizar en la consulta original, o también dentro de la supuesta vista.

Yo lo primero que haría es asegurarme de que no hay ninguna view implicada.

Saludos,

 

n/d
Imagen de Oscar_Paredes
Offline
Joined: 23/07/2006
Puntos: 136

Lo único que se me ocurre, es que es posible que lo que estés viendo como "select * from table" sea la manera de verificar la validez de la query obteniendo los nombres de los campos de la tabla remota antes de la ejecución de la misma.

Debiera lanzarse con un where, del estilo de "where 1=0", es decir, una query previa que no devuelva resultados y sólo sirva para retornar la cabecera de la tabla. Verificalo.

n/d
Offline
Joined: 26/07/2012
Puntos: 5

Hola

Bueno la query no viene con ningun where, como podría verificar si efectivamente

lo que devuelve es solamente la cabecera de la tabla, podría ser verificando la cantidad de

rows en el trace?, y ya verifique y no vienen de ninguna vista, se me ocurre que puede ser

lo que comenta Oscar, podría agregarle el hint DRIVER_SITE,serviría?

 

Saludos

Gracias

 

Imagen de Oscar_Paredes
Offline
Joined: 23/07/2006
Puntos: 136

DRIVING_SITE

Sí, pruebalo, enviando al remoto los datos puede que no sea necesario este "select *"... si estamos en lo cierto. Entiendo que piensas que puede tener relación con el Bug 10181153.

Ya dirás. Suerte.

n/d
Offline
Joined: 26/07/2012
Puntos: 5

Hola

Bueno he utilizado el hint DRIVING_SITE y en el trace devuelve un select/*+ FULL(alias_tabla) +*/  *  from tabla, la verdad no estoy muy segura de que si tendría q devolverme algo al utilizar ese hint, me parece que lo q devuelve es la estructura de la tabla no la data como mencionada Oscar, aunq siempre le pone el asterisco, la verdad ya no tengo idea de que puede ser, ya utilicé el hint de indeces y es lo mismo.

Voy a seguir investigando que otro detalle puede ser, a lo mejor sea porque la tabla tiene particiones,pero bueno cualquier cosa les comento

Gracias por su ayuda y su tiempo

Feliz Dia :)

 

Contenido relacionado

  •  Estimados:

    Tengo la necesidad de generar una auditoria de los accesos a los cubos de la empresa, en Sql server me resulto fácil, con el sql server profiler genere un trace y al llevarlo a una base de datos y trabajar sobre ella genera un informe con los usuarios, los cubos y los dias que los actualizan. El problema es que quise replicar lo mismo en Sql 2000 pero me di cuenta que las opciones de el trace son distintas, no existe el discover begin en el cual me sale el cubo accesado, mi pregunta es: ¿Existe alguna otra forma de poder obtener esta informacion en sql server 2000? De antemano muchas gracias y saludos a todos!

  • Buenos Días. Saludos a todos.

    Me encuentro con un problema, necesito saber si existe alguna vista o tabla que me permita saber que privilegios tiene asignado un grupo de paquetes. Son 450 paquetes y necesito saber cual de ellos no tiene permisos de Ejecución.

     

    Gracias de antemano.

    Saludos.

  • Hola, espero me puedan ayudar con una idea...

     

    Resulta que hice una migración de una DB de Oracle 10g de un servidor Windows a otro AIX. Solamente se migró 1 schema perteneciente a 1 usuario de la DB. Para extraer los datos estaba loggeado en el sqlplus con la sentencia: sqlplus / as sysdba

    El problema es que al barrer los sinónimos de la DB había varios que no se migraron porque no se mostraban, resulta que estos objetos solamente se veían estando loggeado desde el usuario en cuestión, sin embargo, usualmente carezco de los passwords de los usuarios.

    ¿Por qué no veía estos objetos estando como SYSDBA?

    ¿Cómo puedo evitar esto en un futuro?

     

    Por cierto, ¿hay forma de conocer los las tablas un DBLink?, estoy usando:

    SELECT * FROM all_all_tables@dblink;

    Pero me dice:
    ORA-02019: connection description for remote database not found

    Agradezco de antemano la orientación.
    Saludos.

     

  • Saludos, quisiera algun ejemplo de como pudiese generar un archivo plano tras un simple query en SQLplus, indicando separador, y ancho de campo (si es posible) o ancho de la linea....

     

    Ejemplo:

     

    Select idcliente, nombre, apellido, edad, sexo from clientes;

     

    Resultado:

     

    1|David|Montecalvo|24|Masculino

     

    Nota: cuando hago un query en sqlplus, cuando son muchos campos, a veces el me genera el archivo, (usando spool) asi:

     

    idcliente               nombre            apellido       

    _______               ______            ______

    1                         David               Montecalvo

     

    edad           sexo

    ____           _______

  • A fin de obtener una lista aproximada de las tablas con más movimientos de la base de datos podemos consultar el contenido de la tabla dba_tables y cruzarlo con el estado actual de cada tabla en la bbdd. Esto puede tener sentido cuando queremos confeccionar una lista de tablas a las que se debe actualizar estadísticas periódicamente o queremos controlar la cantidad de información que genera alguna aplicación en concreto. Los datos que obtenemos por cada tabla son siempre respecto al último analisis de la misma.

    La siguiente forma de hacerlo es un poco "rupestre" pero útil a la vez:

 

 

 

Gestion del Conocimiento    |    Business Intelligence y Analítica    |     Bases de Datos    |      ERP     |      CRM      |     Tendencias tecnológicas