? Artículos técnicos Grupo Danysoft: Introducción InterBase 7 Por Pablo Reyes – Grupo Danysoft enero de 2003 - (902) 123146 www.danysoft.com Lo nuevo en InterBase 7 - Danysoft Internacional Lo nuevo en InterBase 7 Recientemente Borland ha lanzado al mercado InterBase 7, la nueva versión de su base de datos multiplataforma. En este artículo veremos una breve descripción de las novedades más importantes. Tabla de Contenido Soporte para SMP (Symmetric MultiProcessor) ............................................................ 3 Información de actividad en tablas temporales .............................................................. 3 Ejemplos................................................................................................................... 3 Nuevo controlador JDBC tipo 4 .................................................................................... 4 Nuevo tipo de dato: BOOLEAN.................................................................................... 4 Nuevas palabras clave ............................................................................................... 4 SET TERM en ISQL..................................................................................................... 4 Ejemplo .................................................................................................................... 5 Nombres de meta-datos y XSQLDA de 68 bytes........................................................... 5 Nuevas APIs ................................................................................................................. 5 BLOBs y ARRAYS .................................................................................................. 5 Detección de la versión del cliente ............................................................................ 5 Seguridad mejorada para tablas externas ....................................................................... 6 Migración fácil ............................................................................................................. 6 Página 2 de 6 Lo nuevo en InterBase 7 - Danysoft Internacional Soporte para SMP (Symmetric MultiProcessor) InterBase 7 soporta el uso de múltiples procesadores simétricos permitiendo el máximo aprovechamiento del hardware disponible. El soporte para SMP comprende tanto al servidor como a los clientes. En versiones anteriores, InterBase se ejecutaba de forma segura en hardware con varios procesadores utilizando sólo uno de ellos. En esta nueva versión los distintos hilos de ejecución hacen uso de todos los procesadores disponibles mejorando considerablemente el rendimiento global del servidor y de los clientes. Información de actividad en tablas temporales Si bien InterBase siempre ha contado con herramientas para obtener información sobre la actividad del servidor, en esta nueva versión hay aun más información disponible en la forma de tablas temporales del sistema. Estas tablas son creadas para cada conexión a una base de datos y, por defecto, están disponibles sólo para el usuario SYSDBA y para el propietario de la base de datos. Ambos usuarios tienen control total sobre ellas y pueden garantizar privilegios para los demás usuarios pero sólo para realizar consultas. La siguiente lista muestra las nuevas tablas temporales del sistema creadas por InterBase para cada conexión a una base de datos: Nombre TMP$ATTACHMENTS TMP$DATABASE TMP$POOL_BLOCKS TMP$POOLS TMP$PROCEDURES Descripción Una fila por cada conexión a una base de datos Una fila por cada base de datos a la que se está conectado Una fila por cada bloque de memoria en cada "pool" Una fila por cada "pool" de memoria en uso Una fila por cada procedimiento almacenado que fue ejecutado desde que se inició la conexión en uso Una fila por cada relación referenciada desde que se inició TMP$RELATIONS la conexión en uso Una fila por cada sentencia actualmente en ejecución en TMP$STATEMENTS cualquier de las conexión en uso TMP$TRANSACTIONS Una fila por cada transacción que está activa o en estado "limbo" Los usuarios SYSDBA y el propietario de la base de datos pueden actualizar estas tablas para controlar el comportamiento del servidor. Los demás usuarios pueden consultar estas tablas como lo harían con cualquier otra tabla, siempre y cuando los usuarios SYSDBA o el propietario de la base de datos les hayan garantizado los privilegios correspondientes. Ejemplos Para ilustrar las posibilidades que estas tablas ponen a disposición de los administradores y usuarios, a continuación se detallan algunos ejemplos de operaciones típicas que podrían llevarse acabo en situaciones normales: • • • Las diez sentencias SQL que más tiempo han tardado en ejecutarse Las diez transacciones más viejas, es decir, la que más tiempo hace que están activas Las diez tablas con más datos a ser eliminados por el recolector de basura Página 3 de 6 Lo nuevo en InterBase 7 - Danysoft Internacional • • • Los diez procedimientos almacenados que más fueron ejecutados ¿Está la opción "sweep" de la base de datos activada? En caso afirmativo, ¿cuál es su progreso? Asignaciones de "pool" de memoria agrupados por tipo de "pool" Hay casos en los cuales surge la necesidad de tomar medidas luego de haber obtenido la información detallada en los puntos anteriores. Modificando la columna TMP$STATE de algunas de las tablas temporales del sistema es posible realizar tareas como las siguientes: • • • • Finalizar transacciones activas o en estado "limbo" rechazando los cambios realizados (rollback) Finalizar transacciones en estado "limbo" aceptando los cambios realizados (commit) Cerrar la conexión en uso Detener la ejecución de una sentencia que aun no ha finalizado Estos son sólo algunos ejemplos de situaciones que antes eran muy difíciles de resolver y que en esta nueva versión son tan fáciles de resolver como realizar una consulta y luego una actualización. Nuevo controlador JDBC tipo 4 El nuevo controlador JDBC tipo 4 facilita el despliegue de aplicaciones Java que acceden a InterBase. Aun se mantiene el soporte para el controlador JDBC tipo 3. Nuevo tipo de dato: BOOLEAN InterBase 7 soporta el tipo de dato BOOLEAN introducido en el estándar SQL 99. Nombre BOOLEAN Tamaño 32 bits Valores TRUE/FALSE/UNKNOWN Nuevas palabras clave Las siguientes palabras reservadas fueron agregadas: • BOOLEAN • TRUE • FALSE • UNKNOWN SET TERM en ISQL Ya no es necesario utilizar la sentencia SET TERM en ISQL para sentencias SQL para la creación de procedimientos almacenados y disparadores. ISQL puede resolver estas sentencias correctamente sin la necesidad de especificar un carácter de final de sentencia con SET TERM. Página 4 de 6 Lo nuevo en InterBase 7 - Danysoft Internacional Ejemplo CREATE PROCEDURE foo... BEGIN una sentencia; otra sentencia; y una más; END; IBConsole y los componentes InterBase Express aun deben utilizar SET TERM para este tipo de sentencias. Por lo tanto, la vieja funcionalidad de SET TERM aun está disponible para compatibilidad hacia atrás. Nombres de meta-datos y XSQLDA de 68 bytes Los nombres de meta-datos pueden ser de 68 bytes de extensión (en realidad, de 67 bytes más un carácter nulo de terminación). Estos nombres están disponibles en todos los clientes de InterBase y en el nuevo controlador JDBC tipo 4. Están siendo implementados en los componentes basados en dbExpress e InterBase Express y deberían estar disponibles en este momento. La estructura XSQLDA ha sido actualizada para soportar los nombres de meta-datos largos. Nuevas APIs A continuación se detallan las nuevas APIs disponibles en InterBase 7. BLOBs y ARRAYS Diez APIs relacionadas con BLOBs y ARRAYS han sido actualizadas para soportar los nombres de meta-datos largos. En estas nuevas APIs, el campo "desc" apunta a una estructura de descripción actualizada para acomodar los nombres de meta-datos largos. Las nuevas APIs son las siguientes: • • • • • • • • • • isc_array_gen_sdl2() isc_array_get_slice2() isc_array_lookup_bounds2() isc_array_lookup_desc2() isc_array_set_desc2() isc_array_put_slice2() isc_blob_default_desc2() isc_blob_gen_bpb2() isc_blob_lookup_desc2() isc_blob_set_desc2() Detección de la versión del cliente Algunos clientes, principalmente controladores, necesitan averiguar el número de versión de la biblioteca del cliente de InterBase. Hay tres APIs nuevas que permiten hacerlo: • isc_get_client_version() Página 5 de 6 Lo nuevo en InterBase 7 - Danysoft Internacional • • isc_get_client_major_version() isc_get_client_minor_version() Seguridad mejorada para tablas externas Bajo ciertas circunstancias, las tablas externas solían plantear problemas de seguridad. Para solucionarlos, la nueva versión de InterBase impone una serie de condiciones que las tablas externas deben cumplir. Estas condiciones son las siguientes y las tablas externas deben cumplir alguna de ellas: • • La tabla debe estar localizada en el directorio <interbase_home>/ext. InterBase siempre puede encontrar los archivos externos ubicados en este directorio. Si la tabla no está localizada en el directorio <interbase_home>/ext entonces es necesario especificar su localización en el archivo de configuración de InterBase, ibconfig, mediante el parámetro EXTERNAL_FILE_DIRECTORY. Si hay más de una localización para tablas externas entonces se debe crear una entrada con este parámetro para cada una de ellas. Migración fácil Borland ha hecho un gran esfuerzo para que la migración de versiones anteriores a la nueva versión 7 sea lo más fácil posible. En la mayoría de los casos, las bases de datos pueden ser migradas a la nueva versión haciendo una copia de resguardo y recuperándola con el nuevo ODS 11 (On-Disk Structure) disponible en la herramienta gbak de la versión 7. Para migraciones complejas hay documentación disponible junto con la que acompaña al producto. Para más información... Si desea más información sobre InterBase, cursos, precios de producto o de licencias no dude en contactar con [email protected] , o visitar www.danysoft.com. Página 6 de 6