Tora Manual de usuario Fecha: 31/08/2007 Referencia: EJIE S.A. Mediterráneo, 3 Tel. 945 01 73 00* Fax. 945 01 73 01 01010 Vitoria-Gasteiz Posta-kutxatila / Apartado: 809 01080 Vitoria-Gasteiz www.ejie.es Este documento es propiedad de EJIE, S.A. y su contenido es confidencial. Este documento no puede ser reproducido, en su totalidad o parcialmente, ni mostrado a otros, ni utilizado para otros propósitos que los que han originado su entrega, sin el previo permiso escrito de EJIE, S.A.. En el caso de ser entregado en virtud de un contrato, su utilización estará limitada a lo expresamente autorizado en dicho contrato. EJIE, S.A. no podrá ser considerada responsable de eventuales errores u omisiones en la edición del documento. Control de documentación Título de documento: TORA Histórico de versiones Código: Versión: 1.0 Fecha: 31/08/2007 Resumen de cambios: Cambios producidos desde la última versión Primera versión. Control de difusión Responsable: Ander Martínez Aprobado por: Ander Martínez Firma: Fecha: Distribución: Referencias de archivo Autor: Consultoría de áreas de conocimiento Nombre archivo: Tora. Manual de usuario v1.0.doc Localización: Toad. Manual de usuario 2/20 Contenido Capítulo/sección Toad. Manual de usuario Página 1 Introducción 4 2 Conceptos básicos 4 3 Funciones elementales 4 3.1 Inicio de la aplicación 4 3.2 Operativa básica 4 3.2.1. SQL Worksheet 4 3.2.2. Schema Browser 6 3.2.3. PL/SQL Debugger 7 3.2.4. Otras herramientas 9 4 Utilidad práctica 11 5 Anexo 1: Ejemplo Realizar un filtrado en una tabla 12 5.1 Resolución 12 6 Anexo 2: Ejemplo exportación 16 6.1 Resolución 16 3/20 1 Introducción El presente documento describe cuáles son las tareas básicas que se pueden ejecutar en la explotación de la herramienta Tora. 2 Conceptos básicos El proyecto Tora se define a si mismo como la alternativa al TOAD, en la gestión de BBDD Oracle. Se trata de un completo sistema de gestión de bases de datos para la parte cliente, que incorpora funcionalidades que permiten realizar todas las tareas básicas del administrador de base de datos y de los desarrolladores, tales como la edición de SQL con resaltado de la sintaxis, un debugger de PL/SQL, un navegador de la BD y otras funciones más específicas para el trabajo del administrador. La versión actualmente homologada es la 1.3.21 Para obtener información adicional sobre el producto acceder a su sitio web: http://sourceforge.net/projects/tora/ 3 Funciones elementales 3.1 Inicio de la aplicación La aplicación puede iniciarse desde el acceso directo creado por el instalador en el menú de inicio, situado en Programas > Toolkit for Oracle > Tora. Al ejecutar la aplicación, lo primero que aparece es una pantalla de login para elegir la BD y el usuario con el que se quiere conectar. Las bases de datos que aparecen en el desplegable se leen automáticamente del fichero del cliente Oracle TSNAMES.ORA. Una vez conectado a una BD, aparecerá el editor de SQL donde se podran construir sentencia SQL. En esta vista puede acceder al resultado del lanzar la SQL o la vista del Explain Plan entre otras. 3.2 Operativa básica Tora incluye un amplio conjunto de herramientas, cuya utilización se describe a continuación. 3.2.1. SQL Worksheet Esta herramienta permite ejecutar sentencias SQL o PL/SQL así como obtener información acerca de cómo se están ejecutando y el consumo de recursos. Es la herramienta que se muestra por defecto al entrar por primera vez en la aplicación. Se divide en dos secciones. La de arriba es donde se puede escribir el código y la de abajo donde se pueden ver los resultados. Las sentencias se separan utilizando punto y coma. Además, Tora analiza el código Toad. Manual de usuario 4/20 introducido para determinar si se trata de un bloque PL/SQL, en cuyo caso ejecuta el bloque completo. Se mantiene la compatibilidad con los scripts SQL*Plus de manera que por ejemplo se pueden utilizar los caracteres “--“ para insertar comentarios, que también pueden crearse en varias líneas utilizando /* .. */. Otra característica interesante de la herramienta es el guardado de las sentencias SQL. Facilitándose así, la reutilización de las sentencias usadas más a menudo. Veamos alguna opción interesante de la barra de iconos de una SQL Worksheet. Se puede guardar la última sentencia ejecutada e insertar o ejecutar una sentencia previamente guardada, escogiéndola de un menú desplegable. Al guardar una sentencia se le puede poner un nombre (por ejemplo “Una select”) y organizar las sentencias en submenús usando dos puntos (por ejemplo “Menú 1: select de ejemplo). En la sección inferior, donde se pueden observar los resultados, existen seis pestañas diferentes: Result: muestra el resultado de la query ejecutada. Visualize: muestra gráficamente los resultados, asumiendo que la primera columna contiene las etiquetas de los datos a mostrar. Information: la información disponible acerca de la sentencia actual en la SGA (Área Global del Sistema). Statistics: si se activa la opción de <<enable statistics>> aquí se muestran las estadísticas creadas cuando se ejecutó la última sentencia. Logging: muestra la historia de las sentencias que se han ido ejecutando y su resultado, así como la fecha de su ejecución. Execution plan: muestra el plan de ejecución de la sentencia actual. Este plan de ejecución es el que se llevaría a cabo si se ejecuta la sentencia por parte del usuario que está conectado actualmente (otro usuario podría obtener otro plan de ejecución) y en la sesión actual (en otra sesión se podrían haber cambiado algunos parámetros de optimización). El plan de ejecución necesita una tabla para almacenar en ella el resultado. El nombre de esta tabla puede ser configurado en las opciones (menú Edit>Preferentes). Si la tabla no existe, Tora pregunta al usuario si debe intentar crearla (si no se crea, Tora no puede mostrar el plan de ejecución). El plan aparecerá en esta pestaña siguiendo una estructura jerárquica, dictaminada según el orden en el Toad. Manual de usuario 5/20 que aparecen las tablas que han sido referenciadas por la sentencia. Mostrara también los métodos de acceso a cada tabla, los métodos de unión en caso de que hayan existido operaciones de join, información acerca de la optimización y mostrara una columna de coste (siempre que esté activada la optimización de función del coste). La estructura jerárquica se conforma de tal manera que los elementos hijos se ejecutan primero y sus resultados son entregados a los elementos padres. Por ejemplo, si se hace una sentencia del tipo: SELECT * FROM boaelab_anuncios; Se obtendría lo siguiente en la pestaña de Execution Plan: Esto significa que la primera operación es el acceso a la tabla, indicándose además que se accede a la tabla completa (la columna Options indica FULL). Los resultados de este acceso se pasan a la sentencia SELECT, que en realidad no es una operación como tal. Si en lugar de la sentencia anterior se hubiese hecho: select * from boaelab_anuncios where anoreg_anu = 1; Se obtendría: En este caso, se ha utilizado primero un índice que podía devolver más de una fila (la columna Options indica RANGE SCAN), con lo que la tabla se ha accedido utilizando el ROWID en lugar de un acceso completo. 3.2.2. Schema Browser El Tora permite explorar la estructura de la base de datos, así como actuar sobre los diferentes objetos contenidos en ella (de una manera bastante básica). Por ejemplo, se pueden crear tablas nuevas, modificar columnas, borrar tablas, etc. Existen además del browser o navegador dos ventanas con pestañas, una dentro de la otra. En la primera se puede escoger el tipo de objeto que se quiere inspeccionar (tablas, vistas, índices, secuencias, etc.). En la segunda se escoge el tipo de información que se quiere examinar a partir de ese objeto. La información disponible dependerá del tipo de objeto (por ejemplo columnas en una tabla, información en la SGA para un índice, la declaración de un paquete o tipo para un objeto PL/SQL). La única parte del browser que permite modificar datos se encuentra en la pestaña de datos para el tipo Toad. Manual de usuario 6/20 de objeto tabla. Escogiendo estas dos pestañas se muestra el editor de contenidos, con sus propios iconos para definir filtros, añadir nuevas entradas a la tabla, etc. Este editor sólo guarda los cambios cuando considera que se ha terminado de editar una fila: al cambiar la fila actual o bien al hacer un commit (puede escogerse la opción de Autocommit en la ventana de Preferences>Database Settings). La barra de estado indicará si faltan datos por guardar. 3.2.3. PL/SQL Debugger El Tora proporciona un editor y debugger avanzado para desarrollar objetos PL/SQL. Bajo la barra de herramientas están los iconos para compilar, ejecutar, manejar breakpoints, etc. El debugger consta de dos secciones: En la izquierda se encuentran los apartados de objetos (que contienen los objetos disponibles en el esquema seleccionado) y los apartados de contenidos (que muestra la estructura del objeto seleccionado). Al seleccionar un elemento en la sección de contenidos, el cursor se situará en el editor en el lugar donde está implementado ese código. En la parte derecha, se muestra el código del objeto editado actualmente. ), se mostraría Además de esto si se pulsara el botón F11 o bien se pulsara el icono correspondiente ( una sección adicional situada bajo las otras dos en la que se ve la información correspondiente al estado actual de ejecución. Toad. Manual de usuario 7/20 Antes de empezar a usar el editor se debe escoger un objeto de código que ya exista o bien crear uno nuevo. El editor muestra los errores resaltando el fondo de la línea en cuestión (por defecto en color rojo). Los breakpoints se indican mediante una pequeña señal de stop en el margen de la línea. Finalmente, la línea actual de ejecución se muestra por defecto con fondo verde. Hay que tener en cuenta que en realidad existen dos editores: en el que se edita la declaración de un paquete, y en el que se edita la implementación de ese paquete. Si se editan procedimientos o funciones se estará utilizando únicamente el segundo editor. Por otro lado, la sección inferior del interfaz consta de diferentes pestañas: Stack trace: contiene la lista de objetos a los que se ha ido llamando hasta llegar a la línea actual de ejecución. Seleccionando una línea del stack trace hará aparecer en el editor el objeto y la línea donde se hizo la llamada. Watches: los watches o vigías permiten inspeccionar los contenidos de las variables en un programa que se esté ejecutando. Cuando se selecciona el icono de añadir un nuevo watch aparece el siguiente cuadro de diálogo: Toad. Manual de usuario 8/20 Este cuadro de dialogo difiere con respecto al indicado en la documentación de ayuda. El presente en la documentación no contiene los scope HEAD o BODY. Si no se escoge autodetectar el scope se puede indicar seleccionando local (la variable está declarada en la función o procedimiento actual), package (declarada en el package) o global (declarada de manera global). Por último se indica el nombre de la variable. Si se tenía el cursor sobre una variable en el editor, ese será el nombre que muestre el programa por defecto. La pestaña de watch mostrará el contenido de esta variable, actualizando su valor cada vez que se detenga la ejecución del código. Para que la variable esté disponible, es necesario haber compilado el código con la opción debug. En caso de que no se haya hecho así, se puede usar el icono de compile (Tora siempre compila con esta opción desde el PL/SQL Debugger). Una vez se ha creado un watch se activan también los iconos que permiten eliminarlos o cambiar su valor. 3.2.4. Otras herramientas Security manager Esta herramienta proporciona una interfaz sencilla para gestionar usuarios, roles y privilegios. La ventana consta de tres partes: 1. La barra de herramientas (en la parte superior de la pantalla) 2. La lista de usuarios y roles (en el borde izquierda de la pantalla) 3. Una ventana con pestañas que contiene las diferentes configuraciones y privilegios que pueden gestionarse para el usuario seleccionado (en el borde derecha de la pantalla). Los roles y privilegios de sistema o de objeto se definen utilizando básicamente el mismo interfaz. La pestaña correspondiente muestra un árbol de privilegios de objeto; en el cual muestra primero cual es hijo el tipo, cual es hijo el objeto y finalmente el privilegio a definir. Además, los privilegios tienen un elemento adicional como hijo llamado <<admin>>. Si se selecciona admin esto dará al usuario o al rol la capacidad de otorgar dicho privilegio a otros usuarios o roles. En el caso de los roles, los privilegios tendrán otro elemento hijo llamado <<default>>. Si se selecciona Toad. Manual de usuario 9/20 este elemento el rol será activado por defecto cuando el usuario se conecte. Cuando se está gestionando un usuario estará también activada la pestaña que permite asignarle cuotas en los tablespaces de la base de datos. Storage manager Esta herramienta proporciona un interfaz para administrar tablespaces y datafiles. Consiste básicamente en un listado de los tablespaces disponibles en la base de datos. Se puede expandir un tablespace para ver los datafiles que lo componen. La barra de herramientas permite realizar las diferentes acciones de creación, modificación, etc. Cuando se selecciona un tablespace o datafile en la parte de abajo aparecen a la izquierda los objetos y a la derecha los extents que existen en dicho tablespace o datafile. Los colores utilizados en la vista de la derecha son los siguientes: extents utilizados en verde, utilizados que pertenecen al objeto actualmente seleccionado en rojo y espacio no utilizado en blanco. Si el tablespace está formado por varios datafiles, éstos aparecen separados por una línea negra. Server tuning Esta herramienta da acceso a información sobre diferentes indicadores importantes del servidor, a estadísticas y a un editor de parámetros de la base de datos. Session manager Se utiliza para gestionar las conexiones a la base de datos. Consiste de una barra de herramientas, una lista de las conexiones abiertas actualmente y en la parte de abajo una ventana con pestañas para acceder a información sobre una conexión específica. Rollback segments Esta herramienta permite gestionar los segmentos de rollback en la base de datos. La parte de arriba muestra los segmentos disponibles (en la columna transactions puede verse una barra por cada transacción que utiliza dicho segmento). La parte de abajo se emplea para detectar problemas de tipo “snapshot too old” (imagen demasiado antigua). En esa vista se muestran las sentencias, la fecha de cuándo fueron detectadas y quién las está ejecutando. En la columna de snapshot puede verse una barra por cada segmento de rollback indicando hasta dónde ha llegado su utilización: si la barra es tan larga como la columna probablemente se pueda haber producido un error de “snapshot too old”. SGA trace Permite informarse sobre las sentencias disponibles en la SGA. Aquí también puede obtenerse información sobre el plan de ejecución de una sentencia, como ocurría en una pestaña del SQL Worksheet. Current session Proporciona información sobre la sesión actual. Existen diez pestañas en esta ventana, proporcionando más información de la que se detalla en el manual que acompaña a la aplicación, ya que también incluye entre otros información sobre locks, cursores abiertos, etc. Toad. Manual de usuario 10/20 DB Extraction/Compare/Search Esta herramienta se emplea para extraer scripts que permitan recrear objetos de la base de datos o para comparar o buscar objetos o generar informes (opción que no viene incluida en el manual incluido en el programa pero que también existe en la última versión). Se escoge el tipo de operación que se desea realizar, después el tipo de información que se quiere incluir en la operación y finalmente se ejecuta con el icono correspondiente, en las pestañas de result o difference (para una comparación). , pudiéndose observar los resultados Si se escoge la opción de extracción se activa también la pestaña de resize, donde se pueden almacenar diferentes especificaciones de almacenamiento para la base de datos. Statistics Manager Permite recoger estadísticas y analizar tablas en paralelo, así como revisar estadísticas almacenadas. Alert Tool Útil para hacer debugging de elementos que envían o dependen de alertas del sistema gestor de base de datos. Invalid Objects Esta herramienta permite recompilar objetos inválidos en la base de datos. En el interfaz, a la izquierda se muestra una lista de los objetos inválidos y a la derecha un editor que muestra el código del objeto seleccionado, para que puedan corregirse los errores. Las líneas con error se muestran con fondo rojo, y colocando el cursor sobre una de estas líneas se puede leer dicho error en la barra de estado. SQL Output Viewer Muestra la salida del paquete DBMS_OUTPUT. Se utiliza cuando se está ejecutando PL/SQL desde la herramienta de SQL Worksheet y también aparece como la pestaña Debug Output en la herramienta de Debugger. 4 Utilidad práctica Uno de los usos más frecuentes del Tora puede ser el lanzamiento de sentencias sql para comprobar si la sentencia está bien formada, qué resultados se obtienen y ver el comportamiento de la sentencia en el “Execution plan” para comprobar el costo computacional de la sentencia. Tora se recomienda en BD Oracle 8i, ya que para versiones superiores, podrá utilizarse el Oracle SQL Developer. Este tipo de herramientas también se suelen utilizar para visualizar el modelo de datos de una aplicación. Se pueden ver todos los objetos que forman el modelo de datos, así como modificarlos, añadir más datos, ver los datos de toda una tabla, realizar un filtrado de los datos, etc. Otra utilidad del Tora es la definición e implementación de funciones y procedimientos, nos permite editarlos, compilarlos incluso debuggearlos. Además Tora nos permite importar y exportar datos desde o hacia otras BD y obtener los scripts de un determinado esquema de BD para poder migrar la BD, Toad. Manual de usuario 11/20 5 Anexo 1: Ejemplo Realizar un filtrado en una tabla Se va ha realizar un filtrado en la tabla S73A08T00 de la aplicación PETSTORE, esta tabla esta compuesta por los siguientes campos: Y el filtrado se va a realizar por el campo “CATEGORY”, seleccionando únicamente aquellos registros de la tabla que tengan la categoría de “DOGS”. 5.1 Resolución Lo primero que hay que hacer una vez abierta la herramienta Tora, es conectarnos con la BD PETSTORE, seleccionamos la base de datos, e indicamos el usuario y la contraseña para conectarnos. Una vez realizada la conexión se muestra la interfaz “SQL Worksheet”, y para ver la tabla hay que seleccionar el interfaz “Schema Browser”, para ello se pincha sobre el icono que se encuentra en la parte superior de la pantalla, justo debajo del menú. Tras pinchar se abre la nueva interfaz que tiene la siguiente Toad. Manual de usuario 12/20 apariencia: En la parte izquierda de la pantalla seleccionamos la tabla que se quiere filtrar , en nuestro caso la S73A08T00, inmediatamente la aplicación muestra la estructura de la tabla en el marco derecho de la interfaz Toad. Manual de usuario 13/20 Seleccionamos la pestaña “Data”, y se muestran todos los registros que contiene la tabla, y una barra de herramientas que nos presenta diferentes operaciones para realizar sobre los datos de la tabla A continuación pinchamos sobre el primer icono de la barra de herramientas para realizar el filtrado. Y en la pantalla que se muestra introducimos la condición para el filtrado, en este caso “CATEGORY=’DOGS’” Toad. Manual de usuario 14/20 Para introducir el campo a filtrar se puede escribir o arrastrar directamente del marco de la izquierda. Una vez creado el filtro pinchamos sobre el botón “OK”, y se mostraran únicamente los registros que cumplen la condición de filtrado. Toad. Manual de usuario 15/20 6 Anexo 2: Ejemplo exportación Se va ha realizar una exportación de los datos de la tabla S73A08T00, y vamos a dejar el resultado en un fichero denominado Datos08.sql. 6.1 Resolución Lo primero que hay que hacer una vez abierta la herramienta Tora, es conectarnos con la BD PETSTORE, seleccionamos la base de datos, e indicamos el usuario y la contraseña para conectarnos. Una vez realizada la conexión se muestra la interfaz “SQL Worksheet”, y para exportar datos hay que seleccionar el interfaz “DB Export/Compare/Search”, para ello se pincha sobre el icono que se encuentra en la parte superior de la pantalla, justo debajo del menú. Tras pinchar se abre la nueva interfaz que tiene la siguiente apariencia: Toad. Manual de usuario 16/20 A continuación para realizar la exportación debemos seleccionar el radio “Extract” y lo que queremos incluir en la exportación, marcaremos únicamente “Include content of tables”. Además hay que seleccionar el destino donde se dejaran los datos. En nuestro caso “Output file” y escogemos el fichero que queramos, hay que tener en cuenta que si no está creado el fichero habrá que crearlo. Y después hay que seleccionar el objeto a exportar, para ello iremos al Schema del PETSTORE y escogeremos la tabla S73A080T00. Toad. Manual de usuario 17/20 Por último presionando el botón de ejecutar elegido de la siguiente manera. Toad. Manual de usuario la aplicación volcará los datos en forma de scripts sobre el fichero 18/20 Toad. Manual de usuario 19/20