Sistema lento

El sistema que administro esta desarrollado en Oracle 8.05 pero la verdad es que estiy iniciando en esto y me he encontrado con que el sistema al momento de realizar grabación y consultar los datos es muy lentos. A esta base de datos consultan desde 15 puntos de la red. Quisiera saber cual seria el problema y plantéame algunas alternativas.

1 respuesta

Respuesta
1
Soy LUMOSA. Realmente das muy pocas pistas para determinar el porque esta lento tu sistema.
Te voy a recomendar algunas cosas que puedes hacer.
1. Revisa que no tengas ningún objeto de tu aplicación creado el el tablespace SYSTEM. Si tienes algún objeto de tu aplicación el SYSTEM debes moverlos a sus correspondientes tablespaces.
2. Observa si tienes los indices de tu aplicación en un tablespace aparte de SYSTEM y aparte de tus datos, es decir debes tener datos e indices en tablespaces independientes.
3. Es posible que tengas muy pocos segmentos de rollback, el tamaño de los segmentos rollback deben ser iguales y se recomienda tener por lo menos uno del doble de tamaño de los otros.
4. Es posible que tengas los tablespaces defragmentados, por tanto debes defragmentarlos cada uno así:
ALTER TABLESPACE nombre_tablespace COALESCE;
5. Reconstruye los indices de tu esquema asi:
SET HEADING OFF
SPOOL ON
SPOOL C:\SCRIPTS\DBA\PASAR.SQL
SELECT 'ALTER INDEX '|| INDEX_NAME || ' REBUILD TABLESPACE nombre_tablespace;'
FROM USER_INDEXES
WHERE TABLESPACE_NAME = 'nombre_tablespace'
/
Spool off
/
Cuando ejecutes el script anterior se debe crear un archivo llamado PASAR.SQL, debes correr este script desde SQL para reconstruir los indices respectivos.
6. Debes de fragmentar las tablas de tu esquema, haciendo un export de tu base de datos, borrar las tablas y luego hacer un import (mucho cuidado con este procedimiento).
Prueba con lo que te envío.. y observa el rendimiento de tu base...
Cordialmente,
lumosa.
Necesito saber como va tu problema y si hiciste lo que te estoy recomendando...
Lumosa
Realice las primeras tres recomendaciones pero el sistema sigue lo mismo, como defragmento los tablespace.
La defragmentación de tablespaces y tablas corresponden a los numerales 4 y 6 arriba.
Respecto al numeral 5 defagmentar tablas tu debes hacer un export y luego un import. Si no sabes hacer export e import, te solicito me envíes con que usuario te conectas a tu base de datos y yo te armo la instrucción de export e import.
Te pregunto, ¿de qué nacionalidad eres?
Lumosa.
Debo decirte que soy Nicaragüense y me interesa saber más acerca del funcionamiento de Oracle, siempre agradezco tu ayuda
Mariogsa, no me informaste si defragmentaste los tablespaces y las tablas.
Te recomiendo que el usuario SYSTEM lo uses solo para actividades propias para tunning y performance. Crea un usuario con los privilegios correspondicentes en tu base de datsos así:
SQL>CREATE USER nombre_usuario IDNTIFIED BY dar_una_clave DEFAULT TABLESPACE nombre_tablespace_default TEMPORARY TABLESPACE nombre_tablespace_temporal;
SQL>GRANT CONNECT TO nombre_usuario
SQL> GRANT EXP_FULL_DATABASE TO nombre_usuario;
SQL> GRANT IMP_FULL_DATABASE TO nombre_usuario;
SQL> GRANT RESOURCE TO nombre_usuario;
SQL> GRANT DBA TO nombre_usuario
Si deseas que nombre_usuario tenga privilegios de escribir en cualquier tablespace entonces:
SQL>GRANT UNLIMITED TABLESPACE TO nombre_usuario;
Las instrucciones anteriores puedes ejecutarlas entrando a SQL con el usuario SYSTEM o por el SERVER MANAGER (svrmgrl).
Vuelvo te insisto de fragmentar los tablespaces como te indque arriba, solo has lo siguiente:
1. Consulta cuales son los nombres de tus tablespaces así:
SQL> select tablespace_name from user_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
ROLLBACK
TEMPORAL
TS_IFACTURA
TS_INOMINA
TS_ISFI
TS_DFACTURA
TS_DNOMINA
TS_DSFI
TS_DFONDO
TS_IFONDO
TS_DAUDITORIA
TS_DKABC
TS_IKABC
LMS_DATA
y ejecutas por cada tablespace lo siguiente:
SQL> ALTER TABLESPACE TS_DSFI COALESCE;
Nota: defragmenta las tablas con export e import, SI NO SABES COMO HACERLO DIME QUE YO TE EXPLICO...
Si recibes este e-mail antes de la 5.pm y me respondes te puedo ayudar mucho más, lo que pasa es que salgo a las 5p.m
Lumosa
Quizás te este preguntando tantas cosas y las otras no las he hecho, pero me interesa que me lo pongas para probarlo. Mis tablespace son:
Tablespace_name
---------------------
Hidroindex
Hidromet
Inst_tbs_d2k
Meteoindex
Rbs
System
Tbs_d2k
Tempory
Usr
Exporta la(s) tablas y luego las importas al tablespace especifico así:
1. exp usr/password file=exp.dmp tables=tabla1,tabla2,..tablan log=exp.log
2. Borra las tablas de su origen asi:
SQL>Drop table tabla1;
SQL>Drop Table tabla2;
Es importante verificar si se cuenta con espacio suficiente para la reubicacionde las tablas.
3. Ejecutar un import del archivo creado en el export con el parámetro INDEXFILE=Y para obtener la sentencia de creación de las tablas así:
imp usr/paswword file=exp.dmp INDEXFILE=sentencia.sql FULL=Y
4. Edita el archivo resultante (sentencia.sql) para modificar la clausula tablespace (si requieres las tablas en otro tablespace de lo contrario dejalas en el mismo tablespace).
Es necesario quitar los comentarios "REM" de cada linea de dicho archivo.
5. Ejecuta el archivo editado (sentencia.sql) para la creación de la estructura de la tabla,
6. Importar el archivo original (exp. Dmp) con el parámetro IGNORE=Y para actualizar las tablas con todos los registros y cararcteristicas.
imp usr/paswword file=exp.dmp IGNORE=Y tables=tabla1,tabla2,...
7. Verifica que se inserten correctamente los registros de las tablas y se actualicen sus constraints.
ESA ES LA FORMA COMO PUEDES DE FRAGMENTAR TABLAS, pero también puedes hacerla por usuario.
La exportación por usuario es:
exp system/clave owner=nombre_usuario file=archivo.dmp
y la importacion seria:
imp system/clave fromuser=nombre_usuario file=archivo.dmp
Respecto a los tablespaces seria asi:
ALTER TABLESPACE Hidroindex COALESCE;
ALTER TABLESPACE Hidromet COALESCE;
Y así para los otros...
Espero haberte servido y por favor califica y cierra la pregunta ya que te he dado todas las herramientas y de una manera explicita..
Y no se te olvide la reconstrucción de tus indices como te lo explique antes.
Cordialmente,
lumosa...
Defragmentar tablas - objetos (27/11/2002 16:42:0)
Existen diferentes motivos para regrar tablas algunos de ellos son: Desea cambiar los parámetros de almacenamiento, eliminar fragmentación (que es tu caso), cambiar el tablespace de donde esta ubucada o cambiar su propietario.
Por tanto hay dos formas de hacerlo:
1. Usando EXPORT/IMPORT como te explique antes.
2. Con el comando CREATE TABLE AS SELECT, el cual te lo voy a explicar:
CREATE TABLE AS SELECT
Aqui la idea es crear una tabla con el comando:
CRAETE TABLE tabla_copia AS SELECT * FROM tabla_original;
Después de borrar la tabla original y ejecutar la misma instrucción pero cambiando la tabla tabla_copia por la original y viceversa.
Por favor, califica y cierra tu pregunta y me da gusto haberte servido
Cordialmente,
lumosa.
¿Podrías finalizar tu pregunta?
Lumosa
¿Podrías fnalizar tu pregunta?
Lumosa...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas