Resumen |
---|
|
Consejo |
---|
Si un valor como, por ejemplo, el tipo de índice, debe ser igual para la mayoría de las columnas de texto, utilice la información de configuración del texto para especificar los valores por omisión. Consulte el apartado Valores de la configuración del texto. |
Para anular los cambios realizados por ENABLE TEXT COLUMN, utilice el mandato DISABLE TEXT COLUMN. Para inhabilitar todas las columnas de texto habilitadas de una tabla, utilice el mandato DISABLE TEXT TABLE.
Cuando habilite una columna de texto, se añade una columna de descriptores de contexto a la tabla, se establece la información del documento (formato, idioma, CCSID), se crea una tabla de registro cronológico y se crea un índice.
Durante este paso, DB2 Text Extender añade una columna de descriptores de contexto VARCHAR de 60 bytes a la tabla - una columna que contiene los descriptores de contexto asociados a la columna de texto que se habilita. Los descriptores de contexto contienen información acerca del texto de la columna de texto asociada y de los archivos externos asociados. Esta información incluye un ID exclusivo de documento, el idioma, el formato y el CCSID del documento y el nombre de índice.
Consejo |
---|
Esta versión de DB2 Text Extender no puede utilizar índices creados con un release anterior. Debe inhabilitar y volver a crear todas las bases de datos y las tablas habilitadas para DB2 Text Extender. |
La columna que contiene los bloques de texto es COMMENT. Antes de poder buscar en el texto de esta columna, debe preparar la base de datos y la columna COMMENT para que DB2 Text Extender las utilice.
Después de este paso de preparación, la tabla DB2TX.MYTABLE contiene una columna adicional para los descriptores de contexto.
Nota: | Cuando posteriormente busque texto, especifique la columna de descriptores de contexto, no la columna de texto, como la columna en que se ha de buscar. |
Especifique el tipo de documentos de texto que almacena normalmente en esta columna de texto: su formato (por ejemplo, ASCII), su idioma y su CCSID. Se pueden especificar valores por omisión para esta información en los valores de configuración del texto. Consulte el apartado Valores de la configuración del texto.
Durante este paso, se crea una tabla de registro cronológico y una vista llamada LOGIXnnnnnn, donde IXnnnnnn es el nombre de índice (disponible en la vista del catálogo). Si se especifica un espacio de tabla por omisión en la configuración del texto, la tabla de registro cronológico se almacena allí; de lo contrario, se almacena en el espacio de tabla por omisión del sistema DB2. Para optimizar el rendimiento y la utilización del espacio de disco, puede especificar un espacio de tabla diferente para utilizarse para las tablas de registro cronológico.
También se crean desencadenantes que añaden información a la tabla de registro cronológico siempre que se añade o cambia un documento de la columna. Esta información hace que estos documentos se indexen la próxima vez que tenga lugar una indexación.
Si se añaden o cambian archivos externos, estos desencadenantes no se dan cuenta de los cambios. En estos casos, para que los desencadenantes añadan la información a la tabla de registro cronológico, utilice la sentencia UPDATE, tal como se muestra en el ejemplo del apartado Actualización de un índice para archivos externos.
Si se producen errores durante la indexación como, por ejemplo, cuando no se ha podido encontrar un documento en cola para indexación, los llamados sucesos de error se añaden a la tabla de registro cronológico y pueden visualizarse de la forma que describe el apartado Visualización de sucesos de error.
Consejo |
---|
Si se queda sin espacio de registro cronológico en este paso, consulte el apartado Habilitación de una columna de texto en una tabla grande para ver las posibles soluciones. |
En bases de datos particionadas, cada tabla se asigna a un espacio de tabla y a un grupo de nodos. Es importante que la tabla de registro cronológico se asigne a un espacio de tabla que pertenezca al mismo grupo de nodos que la tabla de usuario habilitada. DB2 Text Extender lo comprueba durante el mandato ENABLE.
Si piensa tener un índice separado para cada columna de texto, es decir, se ha saltado el paso ENABLE TEXT TABLE, DB2 Text Extender crea un índice separado para la columna de texto durante este paso. El usuario especifica el tipo de texto, la frecuencia con la que se ha de actualizar el índice y el directorio en el que se ha de almacenar el índice. Por otro lado, si piensa tener un índice para toda la tabla, es que ya ha ejecutado ENABLE TEXT TABLE y ha especificado los parámetros de índice; se pasan por alto si los repite ahora.
Utilice la palabra clave UPDATEINDEX para determinar si la indexación de los documentos de texto de la columna de texto especificada empieza inmediatamente o para cuándo está planificada la indexación periódica. Si no utiliza esta palabra clave, se toma el valor especificado en los valores de configuración del texto.
Creación de índices de varios tipos para una columna de texto. Puede crear más de un índice para una columna de texto. Esto es útil si desea permitir, por ejemplo, la búsqueda lingüística y similar en la misma columna de texto, asociando la columna a tipos de índices diferentes como, por ejemplo, los índices lingüísticos y Ngram. Esto se hace ejecutando ENABLE TEXT COLUMN de nuevo, especificando no sólo el tipo de índice adicional que se ha de crear, sino también un nombre exclusivo de columna de descriptores de contexto.
Consejo |
---|
Si está utilizando una base de datos particionada y decide cambiar la configuración de un grupo de nodos e iniciar una redistribución de las filas de la tabla, debe volver a crear los índices de texto y las tablas de registro cronológico, es decir, debe inhabilitar y volver a habilitar todas las tablas habilitadas para DB2 Text Extender de ese grupo de nodos. |
El ejemplo siguiente habilita la columna de texto COMMENT de la tabla DB2TX.MYTABLE y asigna el nombre COMMENTHANDLE a la columna de descriptores de contexto que se crea:
db2tx ENABLE TEXT COLUMN db2tx.mytable comment HANDLE commenthandle
Los valores por omisión para la información de texto y para las características de los índices se toman de los valores de configuración del texto.
El ejemplo siguiente establece explícitamente los valores para el tipo de documentos que están en la columna COMMENT. Los valores por omisión para las características de índice se toman de los valores de configuración del texto.
db2tx ENABLE TEXT COLUMN db2tx.mytable comment HANDLE commenthandle CCSID 819 LANGUAGE uk_english FORMAT rft
El siguiente ejemplo establece explícitamente los valores para las características del índice que se crea para la columna COMMENT. El ejemplo establece el tipo de índice, el directorio del índice y la frecuencia de actualización del índice para que se actualice a las 12:00 o 15:00, de lunes a viernes, si hay un mínimo de 100 documentos de texto en cola. Los valores por omisión para la información del texto se toman de los valores de configuración del texto.
Para un servidor UNIX:
db2tx ENABLE TEXT COLUMN db2tx.mytable comment HANDLE commenthandle INDEXTYPE linguistic UPDATEFREQ min(100) d(1,2,3,4,5) h(12,15) m(00) UPDATEINDEX UPDATE DIRECTORY DB2TX_INSTOWNERHOMEDIR/db2tx/indexes
Para un servidor OS/2, Windows NT o Windows 2000:
db2tx ENABLE TEXT COLUMN db2tx.mytable comment HANDLE commenthandle INDEXTYPE linguistic UPDATEFREQ min(100) d(1,2,3,4,5) h(12,15) m(00) UPDATEINDEX UPDATE DIRECTORY d:\dmb\db2tx\indexes TABLESPACE mytablespace STOGROUP mystoragegroup
Si está trabajando con una tabla que tiene una gran longitud de fila, recuerde que la habilitación de una columna de texto añade una columna de descriptores de contexto del tipo DB2TEXTH (VARCHAR 60). Esto podría ser importante si la tabla se acerca a la longitud máxima de fila, tal como la determina DB2.
También, cuando habilite una columna de texto en una tabla grande, utilice el programa de utilidad REORGANIZE de DB2 para comprobar si es necesario reorganizar la tabla. Cuando se habilita una tabla grande por primera vez, los pasos siguientes agilizan la indexación:
Cuando se habilita una columna de texto o archivos externos, DB2 Text Extender añade una columna de descriptores de contexto a la tabla e inicializa los valores de los descriptores de contexto, lo que provoca que se graben entradas en el registro cronológico de DB2. Si se ha de grabar un número de entradas de registro cronológico excepcionalmente grande, DB2 puede quedarse sin espacio de registro cronológico.
Hay dos maneras de manejar esta situación; la primera es mejor por razones de rendimiento:
LOGSECOND 50
Asegúrese que la suma de LOGPRIMARY y LOGSECOND no sea superior a 128. También debe incrementar el tamaño de almacenamiento dinámico de la aplicación.
APPLHEAPSZ 512
Las columnas de texto deben ser CHAR, GRAPHIC, VARGRAPHIC, LONG VARGRAPHIC, DBCLOB, VARCHAR, LONG VARCHAR o CLOB para que DB2 Text Extender las habilite. Si los documentos están en una columna de tipo diferente como, por ejemplo, un tipo diferenciado definido por el usuario (UDT), debe proporcionar una función que tome el tipo del usuario como entrada y proporcione un tipo de salida CHAR, GRAPHIC, VARGRAPHIC, LONG VARGRAPHIC, DBCLOB, VARCHAR, LONG VARCHAR o CLOB.
Utilice la palabra clave FUNCTION en ENABLE TEXT COLUMN para especificar el nombre de esta función.
Ejemplo: Ha intentado almacenar texto comprimido en una tabla.
db2 CREATE DISTINCT TYPE COMPRESSED_TEXT AS CLOB(1M)
db2 CREATE TABLE MYTEXT (author VARCHAR(50), text COMPRESSED_TEXT) db2 INSERT ...
Para habilitar la columna de texto para que DB2 Text Extender la utilice:
db2tx ENABLE TEXT COLUMN MYTABLE texto FUNCTION uncompress HANDLE descriptor ...
DB2 Text Extender soporta el tipo de datos DATALINK. La tecnología Data Link de DB2 proporciona una integridad de referencia entre los datos almacenados en DB2 y los datos de los archivos externos. Lo hace proporcionando un nuevo tipo de datos DATALINK que contiene referencias a un objeto almacenado externamente a la base de datos. Un valor de DATALINK almacenado en una tabla DB2 codifica el nombre del servidor Data Links que contiene el archivo y el nombre del archivo en términos de una Uniform Resource Location (URL).
Si los datos DATALINK están en archivos externos en lugar de en una tabla DB2, siga la descripción del apartado Habilitación de archivos de texto externos.
Antes de habilitar una columna de texto que contiene el tipo de datos DATALINK, es importante ejecutar el ejemplo de verificación de la instalación (consulte el apartado Preparación de una base de datos de ejemplo para la verificación de la instalación).
Ejemplo AIX: La sentencia siguiente muestra cómo se inserta un valor de enlace de datos en la columna de texto utilizando el tipo de datos DATALINK en AIX:
db2 "insert into mytable values ('Peter', dlvalue ('http://dlfs.boeblingen.ibm.com/test/documents/letter1', 'URL', 'se trata de una carta de Peter'))"
En este ejemplo, dlfs.boeblingen.ibm.com es el nombre de servidor de archivos, test es el nombre del sistema de archivos y documents/letter1 es la vía de acceso y el nombre de archivo.
Asegúrese de que el sistema de archivos esté montado en el servidor DB2 con el mismo nombre especificado en la URL.
Ejemplo de Windows NT o Windows 2000: La sentencia siguiente muestra cómo se inserta el valor de enlace de datos en la columna de texto utilizando el tipo de datos DATALINK en Windows:
db2 "insert into mytable ('Peter', dlvalue ('unc:\\dlfs.boeblingen.ibm.com\cdrive\documents\letter1', 'URL', 'se trata de una carta de Peter'))"
En este ejemplo, cdrive es el nombre de compartición de la unidad en la que está almacenado el archivo.
Si surgen problemas al indexar los documentos almacenados en una columna de enlace de datos, asegúrese de que puede acceder a los documentos desde el servidor DB2 utilizando las API proporcionadas por DB2.