Instituto Superior de Formación Docente
y Técnica Nº 5 José Eugenio Tello
Trabajo Práctico Nº 3 Uso Eficiente de los Bloques en la Base de Datos
Tecnicatura Superior en Informática
Cátedra de Base de Datos II
Profesor: Ms. Ing. Héctor Pedro Liberatori Pág. 1
1. Conéctese utilizando sys/oracle AS sysdba y consulte las columnas tablespace_name y extent_management de dba_tablespaces para determinar que tablespaces se gestionan localmente y cuales por diccionarios. Registre los tablespaces que se gestionan por diccionarios.
Instituto Superior de Formación Docente
y Técnica Nº 5 José Eugenio Tello
Trabajo Práctico Nº 3 Uso Eficiente de los Bloques en la Base de Datos
Tecnicatura Superior en Informática
Cátedra de Base de Datos II
Profesor: Ms. Ing. Héctor Pedro Liberatori Pág. 2
2. Modifique el usuario hr para que el tablespace tools sea el valor por defecto.
3. Examine la vista v$system_event y observe el número total de esperas de la estadística en cola.
Nota: Es más probable que recoja la contención en un sistema de producción a través del informe Statspack.
Instituto Superior de Formación Docente
y Técnica Nº 5 José Eugenio Tello
Trabajo Práctico Nº 3 Uso Eficiente de los Bloques en la Base de Datos
Tecnicatura Superior en Informática
Cátedra de Base de Datos II
Profesor: Ms. Ing. Héctor Pedro Liberatori Pág. 3
4. Examine también la vista v$enqueue_stat en busca de eq_type ‘ST’ para determinar el valor de total_wait# para ST en cola, que es la gestión de espacio en cola.
5. Salga de la sesión SQL*Plus y cambie el directorio a c:\oraclass\student\labs. Ejecute el archivo de comandos lab13_04.bat desde el prompt del sistema operativo. Este archivo de comandos conectará cinco usuarios a la base de datos de forma simultánea y, a continuación, cada usuario crea y borra tablas. Cada tabla tiene muchas extensiones. El archivo de comandos se debe ejecutar desde el directorio c:\oraclass\student\labs o fallará.
Instituto Superior de Formación Docente
y Técnica Nº 5 José Eugenio Tello
Trabajo Práctico Nº 3 Uso Eficiente de los Bloques en la Base de Datos
Tecnicatura Superior en Informática
Cátedra de Base de Datos II
Profesor: Ms. Ing. Héctor Pedro Liberatori Pág. 4
Instituto Superior de Formación Docente
y Técnica Nº 5 José Eugenio Tello
Trabajo Práctico Nº 3 Uso Eficiente de los Bloques en la Base de Datos
Tecnicatura Superior en Informática
Cátedra de Base de Datos II
Profesor: Ms. Ing. Héctor Pedro Liberatori Pág. 5
6. Conéctese como system/oracle y examine de nuevo la vista v$enqueue_stat en busca de eq_type ‘ST’ para determinar el valor total_wait# para ST en cola, que es la gestión de espacio en cola.
Instituto Superior de Formación Docente
y Técnica Nº 5 José Eugenio Tello
Trabajo Práctico Nº 3 Uso Eficiente de los Bloques en la Base de Datos
Tecnicatura Superior en Informática
Cátedra de Base de Datos II
Profesor: Ms. Ing. Héctor Pedro Liberatori Pág. 6
Nota: Registre la diferencia del número de esperas de ST en cola para la gestión de la extensión utilizando un tablespace gestionado por diccionario. Este valor se obtiene restando el primer valor de espera (de la práctica 13‐04) del segundo valor de espera (de la práctica 13‐06).
7. Cree un nuevo tablespace test gestionado localmente, asigne al archivo de datos el nombre test01.dbf y colóquelo en el directorio c:\oraclass\oradata\u06. Defina el tamaño en 120MB y un tamaño de extensión uniforme de 20 KB.
Instituto Superior de Formación Docente
y Técnica Nº 5 José Eugenio Tello
Trabajo Práctico Nº 3 Uso Eficiente de los Bloques en la Base de Datos
Tecnicatura Superior en Informática
Cátedra de Base de Datos II
Profesor: Ms. Ing. Héctor Pedro Liberatori Pág. 7
8. Modifique el tablespace por defecto del usuario hr a test.
Nota: Se vuelven a cubrir los mismos pasos. Esta vez, se busca el número de esperas de ST en cola provocadas por tablespaces gestionados localmente.
9. Examine y registre el valor inicial de total_wait# para ‘ST’ en la vista v$enqueue_stat.
Instituto Superior de Formación Docente
y Técnica Nº 5 José Eugenio Tello
Trabajo Práctico Nº 3 Uso Eficiente de los Bloques en la Base de Datos
Tecnicatura Superior en Informática
Cátedra de Base de Datos II
Profesor: Ms. Ing. Héctor Pedro Liberatori Pág. 8
10. Salga de la sesión SQL*Plus y cambie el directorio a c:\oraclass\student\labs. Ejecute el archivo de comandos lab13_04.bat desde el prompt del sistema operativo. Este archivo de comandos conectará cinco usuarios a la base de datos de forma simultánea y, a continuación, cada usuario crea y borra tablas. Cada tabla tiene muchas extensiones. El archivo de comandos se debe ejecutar desde el directorio c:\oraclass\student\labs o fallará.
Instituto Superior de Formación Docente
y Técnica Nº 5 José Eugenio Tello
Trabajo Práctico Nº 3 Uso Eficiente de los Bloques en la Base de Datos
Tecnicatura Superior en Informática
Cátedra de Base de Datos II
Profesor: Ms. Ing. Héctor Pedro Liberatori Pág. 9
11. Conéctese como system/oracle. Examine y registre de nuevo el valor final de total_wait# para ‘ST’ en la vista v$enqueue_stat.
Nota: Registre la diferencia de total_wait# de ST en cola para la gestión de la extensión utilizando un tablespace gestionado localmente. Este valor se obtiene restando el primer valor de espera (de la práctico 13‐09) del segundo valor de espera (de la práctica 13‐11). Compare los dos resultados de los distintos tablespaces. El tablespace gestionado localmente sería mucho menos conflictivo con la gestión de la extensión, ya que gestiona el espacio dentro del propio tablespace.
Instituto Superior de Formación Docente
y Técnica Nº 5 José Eugenio Tello
Trabajo Práctico Nº 3 Uso Eficiente de los Bloques en la Base de Datos
Tecnicatura Superior en Informática
Cátedra de Base de Datos II
Profesor: Ms. Ing. Héctor Pedro Liberatori Pág. 10
12. Conéctese como usuario hr/hr y ejecute el archivo de comandos c:\oraclass\student\labs\lab13_12.sql. Se creará una tabla similar (new_emp) a la tabla employees, pero con PCTFREE = 0. La tabla se rellena a continuación con datos de la tabla de employees.
Instituto Superior de Formación Docente
y Técnica Nº 5 José Eugenio Tello
Trabajo Práctico Nº 3 Uso Eficiente de los Bloques en la Base de Datos
Tecnicatura Superior en Informática
Cátedra de Base de Datos II
Profesor: Ms. Ing. Héctor Pedro Liberatori Pág. 11
13. Ejecute ANALIZE en la tabla new_emp y consulte la vista dba_tables para determinar el valor de chain_cnt para la tabla new_emp. Registre este valor.
Instituto Superior de Formación Docente
y Técnica Nº 5 José Eugenio Tello
Trabajo Práctico Nº 3 Uso Eficiente de los Bloques en la Base de Datos
Tecnicatura Superior en Informática
Cátedra de Base de Datos II
Profesor: Ms. Ing. Héctor Pedro Liberatori Pág. 12
14. Cree un índice denominado new_emp_name_idx en la columna last_name de la tabla new_emp. Coloque el índice en el tablespace indx. A continuación, confirme el estado del índice en la vista user_indexes.
Instituto Superior de Formación Docente
y Técnica Nº 5 José Eugenio Tello
Trabajo Práctico Nº 3 Uso Eficiente de los Bloques en la Base de Datos
Tecnicatura Superior en Informática
Cátedra de Base de Datos II
Profesor: Ms. Ing. Héctor Pedro Liberatori Pág. 13
15. Ejecute el archivo de comandos c:\oraclass\student\labs\lab13_15.sql que actualizará las filas de la tabla new_emp. Analice la tabla new_emp de nuevo y consulte la vista user_tables para obtener el nuevo valor de chain_cnt. Registre ese valor. Compruebe también el estado del índice new_emp_name_idx.
Instituto Superior de Formación Docente
y Técnica Nº 5 José Eugenio Tello
Trabajo Práctico Nº 3 Uso Eficiente de los Bloques en la Base de Datos
Tecnicatura Superior en Informática
Cátedra de Base de Datos II
Profesor: Ms. Ing. Héctor Pedro Liberatori Pág. 14
Instituto Superior de Formación Docente
y Técnica Nº 5 José Eugenio Tello
Trabajo Práctico Nº 3 Uso Eficiente de los Bloques en la Base de Datos
Tecnicatura Superior en Informática
Cátedra de Base de Datos II
Profesor: Ms. Ing. Héctor Pedro Liberatori Pág. 15
16. Resuelva la migración provocada por la actualización anterior utilizando el comando ALTER TABLE MOVE. Esto provocará que no se pueda reutilizar el índice y que se deba reconstruir utilizando el comando ALTER INDEX REBUILD antes de volver a analizar la tabla new_emp. Confirme que se ha resuelto la migración consultando la columna chain_cnt en la vista user_tables y confirma que el índice es válido consultando la vista user_indexes.
Instituto Superior de Formación Docente
y Técnica Nº 5 José Eugenio Tello
Trabajo Práctico Nº 3 Uso Eficiente de los Bloques en la Base de Datos
Tecnicatura Superior en Informática
Cátedra de Base de Datos II
Profesor: Ms. Ing. Héctor Pedro Liberatori Pág. 16
Instituto Superior de Formación Docente
y Técnica Nº 5 José Eugenio Tello
Trabajo Práctico Nº 3 Uso Eficiente de los Bloques en la Base de Datos
Tecnicatura Superior en Informática
Cátedra de Base de Datos II
Profesor: Ms. Ing. Héctor Pedro Liberatori Pág. 17