martes, 7 de abril de 2015

shrink space - reducir espacio tabla o index

Con la clausula shrink del comando alter table o alter index se puede compactar el espacio del objeto para que ocupe
solamente el espacio necesario, segun los datos que tiene dicho objeto.


Recordar que una tabla puede tomar espacio cuando le agregamos filas pero si luego eliminamos estas filas la tabla no reduce la ocupación automaticamente.

lo ejecutamos de la siguiente manera:


  • Habilitamos para que se puedan mover filas de la tabla.

SQL> alter table (nombre de tabla) enable row movement;



  • Ejecutamos el shrink para que la tabla ocupe solo el espacio que necesita (según los datos que tiene) 

SQL> alter table (nombre de tabla) shrink space;


Este comando ejecutarlo en momentos que no se este accediendo a la tabla, ya que baja considerablemente la performance de la misma.

miércoles, 4 de marzo de 2015

Ver Objetos Bloqueados

Con la siguiente consulta vemos los objetos bloqueados y que usuario los tiene.

Ejecutar la consulta con el usuario "system"

select a.session_id,a.oracle_username, a.os_user_name, b.owner "OBJECT OWNER", b.object_name,b.object_type,a.locked_mode from
(select object_id, SESSION_ID, ORACLE_USERNAME, OS_USER_NAME, LOCKED_MODE from v$locked_object) a,
(select object_id, owner, object_name,object_type from dba_objects) b
where a.object_id=b.object_id


y con la siguiente consulta vemos las sessiones que tienen bloqueados objetos:

SELECT l.session_id||','||v.serial# sid_serial,
       l.ORACLE_USERNAME ora_user,
       o.object_name,
       o.object_type,
       DECODE(l.locked_mode,
          0, 'None',
          1, 'Null',
          2, 'Row-S (SS)',
          3, 'Row-X (SX)',
          4, 'Share',
          5, 'S/Row-X (SSX)',
          6, 'Exclusive',
          TO_CHAR(l.locked_mode)
       ) lock_mode,
       o.status,
       to_char(o.last_ddl_time,'dd.mm.yy') last_ddl
FROM dba_objects o, gv$locked_object l, v$session v
WHERE o.object_id = l.object_id
      and l.SESSION_ID=v.sid
order by 2,3;

con los datos que nos arroja podemos realizar un kill seesion.