¿Es posible mostrar otros procesos en progreso en una base de datos Oracle? Algo así como Sybases sp_who
¿Cómo muestro los procesos en ejecución en Oracle DB?
Respuesta
sospecho que usted acaba de querer tomar unas columnas de V $ SESSION y la instrucción SQL de V $ SQL. Suponiendo que desea excluir los procesos en segundo plano que la propia Oracle se ejecuta
SELECT sess.process, sess.status, sess.username, sess.schemaname, sql.sql_text
FROM v$session sess,
v$sql sql
WHERE sql.sql_id(+) = sess.sql_id
AND sess.type = 'USER'
La combinación externa es manejar esas sesiones que no están actualmente activos, asumiendo que usted quiere esos. También podría obtener la columna sql_fulltext de V $ SQL, que tendrá la instrucción SQL completa en lugar de los primeros 1000 caracteres, pero eso es un CLOB y es probable que sea un poco más complicado de tratar.
Realísticamente, es probable que desee ver todo lo que está disponible en V $ SESSION porque es probable que pueda obtener mucha más información de la que proporciona SP_WHO.
Después de mirar sp_who, Oracle no tiene esa capacidad per se. Oracle tiene al menos 8 procesos en ejecución que ejecutan el db. Como RMON, etc.
Puede preguntar al DB qué consultas se están ejecutando como una consulta de tabla. Mira las tablas V $.
Ejemplo rápida:
SELECT sid,
opname,
sofar,
totalwork,
units,
elapsed_seconds,
time_remaining
FROM v$session_longops
WHERE sofar != totalwork;
Tenga en cuenta que hay procesos en la base de datos que pueden no admitir una sesión actualmente.
Si está interesado en todos los procesos que querrá mirar a proceso de v $ (o $ proceso gv en el RAC)
Ésta muestra SQL que es actualmente "ACTIVO": -
select S.USERNAME, s.sid, s.osuser, t.sql_id, sql_text
from v$sqltext_with_newlines t,V$SESSION s
where t.address =s.sql_address
and t.hash_value = s.sql_hash_value
and s.status = 'ACTIVE'
and s.username <> 'SYSTEM'
order by s.sid,t.piece
/
Esto muestra bloqueos. A veces las cosas van lentas, pero es porque está bloqueado a la espera de una cerradura:
select
object_name,
object_type,
session_id,
type, -- Type or system/user lock
lmode, -- lock mode in which session holds lock
request,
block,
ctime -- Time since current mode was granted
from
v$locked_object, all_objects, v$lock
where
v$locked_object.object_id = all_objects.object_id AND
v$lock.id1 = all_objects.object_id AND
v$lock.sid = v$locked_object.session_id
order by
session_id, ctime desc, object_name
/
Este es un buen momento para encontrar las operaciones largas (por ejemplo, los recorridos de tablas completas). Si se debe a muchas operaciones cortas, no aparecerá nada.
COLUMN percent FORMAT 999.99
SELECT sid, to_char(start_time,'hh24:mi:ss') stime,
message,(sofar/totalwork)* 100 percent
FROM v$session_longops
WHERE sofar/totalwork < 1
/
- 1. Enumerar procesos en ejecución en Delphi
- 2. Verificar procesos en ejecución en C
- 3. Linux API para mostrar los procesos en ejecución?
- 4. ¿Cómo puedo ver los parámetros de los procesos en ejecución actualmente en SQL Server 2008
- 5. Recuperar nombres de procesos en ejecución
- 6. Restricción condicional única en Oracle db
- 7. Cómo importar un archivo .dmp (Oracle) en MySql DB?
- 8. Oracle DB: java.sql.SQLException: conexión cerrada
- 9. ¿Cómo supervisan los procesos los procesos del supervisor? ¿Se puede hacer lo mismo en la JVM?
- 10. Lista de procesos en ejecución en Windows de 64 bits
- 11. obtener toda la información de procesos en ejecución usando QProcess
- 12. ¿Cómo puedo enumerar todos los espacios de nombres de contexto en Oracle DB?
- 13. Oracle query tiempo de ejecución
- 14. Ejecución de rake db: caer db: crear db: migrate en Heroku Cedar pila
- 15. ejecución secuencial de procesos en segundo plano Unix
- 16. ¿Cómo destruyo automáticamente los procesos hijos en Windows?
- 17. Obtener la lista de procesos en ejecución (Visual C++)
- 18. Python: Ejecución de procesos Daemon en Windows 7
- 19. La ejecución de dos procesos en paralelo desde makefile
- 20. db-oracle no está lavando datos
- 21. Oracle DB (PL/SQL) Herramientas de refactorización
- 22. Diferencias entre MySQL y Oracle DB
- 23. ¿Cómo controlar los procesos pasajero/mod_rails?
- 24. Jdbc llamada a Oracle 11.1.0.7.0 db bloqueado
- 25. Oracle SQL Query para listar todos los esquemas en un DB
- 26. Obtener ID del último registro insertado en Oracle db
- 27. Simulación de larga data Oracle DB query
- 28. enumerando todos los procesos en iOS 5.0.1
- 29. Conexión a Oracle DB usando Ruby
- 30. ¿Cómo creo y muestro ventanas WPF en hilos separados?
Si necesita ver rápidamente las consultas que se ejecutan durante mucho tiempo, puede agregar 'sql.elapsed_time/1000000' en el' SELECT', además de la restricción 'DONDE ... Y NO ES sql.elapsed_time null' , y finalmente 'ORDER BY sql.elapsed_time DESC'. –
select * from v $ sql ERROR en la línea 1: ORA-00942: la tabla o vista no existe –
@OleTange Entonces su DBA no le ha otorgado privilegios en esa vista. Tendrás que pedirle a él o ella que lo haga. –