Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Codigo Rutina Select

Estas en el tema de Codigo Rutina Select en el foro de Oracle en Foros del Web. Buenas tardes Me he encontrado con un problema tengo un query que funciona bien, pero a la hora de ponerlo en un ambiente de produccion ...
  #1 (permalink)  
Antiguo 20/01/2009, 18:29
 
Fecha de Ingreso: enero-2009
Mensajes: 2
Antigüedad: 15 años, 10 meses
Puntos: 0
Codigo Rutina Select

Buenas tardes

Me he encontrado con un problema tengo un query que funciona bien, pero a la hora de ponerlo en un ambiente de produccion provoca que demasiada concurrencia, me gustaria me propusieran una forma adicional de codificarlo.

SELECT * FROM ( SELECT ROWNUM FILAS, fecmod, puesto, identidad, idvacante, municipio, empresa, idempresa FROM ( SELECT /*+ INDEX(v INDX_VAC_ESTATUS) INDEX(e SYS_C005498) INDEX(m SYS_C005469) */ DISTINCT v.vac_fecmod fecmod, v.vac_puesto puesto, v.identidad identidad, v.idvacante idvacante, m.mundel_descr municipio, v.empresavac empresa, v.idempresa idempresa FROM vacante v, empresa e, c_mun_del m WHERE v.identidad = :1 AND v.vac_estatus = :"SYS_B_0" AND v.idempresa = e.idempresa AND m.idmundel =v.idmundel ORDER BY v.vac_fecmod desc )) WHERE FILAS BETWEEN :"SYS_B_1" AND :"SYS_B_2"

Saludos muchas gracias
  #2 (permalink)  
Antiguo 21/01/2009, 11:12
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 8 meses
Puntos: 7
Respuesta: Codigo Rutina Select

asi es muy dificil leerlo, ponlo entre las etiquetas code
__________________
Blogzote.com :-) Mi blog
  #3 (permalink)  
Antiguo 21/01/2009, 18:24
 
Fecha de Ingreso: enero-2009
Mensajes: 2
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Codigo Rutina Select

Ojala asi sea mas entendible muchas gracias por tomarte el tiempo de revisarlo

SELECT *
FROM ( SELECT ROWNUM FILAS, fecmod, puesto, identidad, idvacante, municipio, empresa, idempresa
FROM (
SELECT /*+ INDEX(v INDX_VAC_ESTATUS) INDEX(e SYS_C005498) INDEX(m SYS_C005469) */
DISTINCT v.vac_fecmod fecmod,
v.vac_puesto puesto,
v.identidad identidad,
v.idvacante idvacante,
m.mundel_descr municipio,
v.empresavac empresa,
v.idempresa idempresa
FROM vacante v, empresa e, c_mun_del m
WHERE v.identidad = :1
AND v.vac_estatus = :"SYS_B_0"
AND v.idempresa = e.idempresa
AND m.idmundel =v.idmundel
ORDER BY v.vac_fecmod desc
)
)
WHERE FILAS BETWEEN :"SYS_B_1"
AND :"SYS_B_2"
  #4 (permalink)  
Antiguo 22/01/2009, 04:47
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años
Puntos: 85
Respuesta: Codigo Rutina Select

Cita:
..pero a la hora de ponerlo en un ambiente de produccion provoca que demasiada concurrencia..
No tengo muy claro que significa esto, la concurrencia esta asociada a la cantidad de usuarios conectados o cantidad de procesos, no al plan de ejecución de una consulta. Lo que puedes hacer es publicar el output del plan de ejecución y estadisticas, como por ejemplo.

Código:
oracle@10G> set autotrace on
oracle@10G> select * from dual;

D
-
X

Transcurrido: 00:00:00.06

Plan de Ejecuci¾n
----------------------------------------------------------
Plan hash value: 272002086

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |     1 |     2 |     2   (0)| 00:00:01 |
|   1 |  TABLE ACCESS FULL| DUAL |     1 |     2 |     2   (0)| 00:00:01 |
--------------------------------------------------------------------------


EstadÝsticas
----------------------------------------------------------
         24  recursive calls
          0  db block gets
          6  consistent gets
          3  physical reads
          0  redo size
        425  bytes sent via SQL*Net to client
        381  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed
Tambien es importante la versión de 4 dígitos de la base de datos.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:21.