Artículos técnicos Grupo Danysoft: Introducción InterBase 7

Anuncio
?
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
Descargar