Utilice la interfaz de búsqueda de procedimiento almacenado cuando la aplicación necesite un subconjunto del resultado de búsquedas de texto, pero no en una forma de alto rendimiento. No utilice el procedimiento almacenado si se necesitan todos los resultados o si se debe indexar un gran número de documentos. La razón principal es que muchas partes de la tabla de usuario se copian en la memoria y, en consecuencia, es necesario que haya una gran cantidad de memoria real disponible.
Puede utilizar el procedimiento almacenado para, en primer lugar, solicitar resultados de 0 a 20, a continuación de 21 a 40, y así sucesivamente, de forma similar a la navegación con el cursor. Si se combinan estas posibilidades del cursor con el uso de una antememoria (calculada durante la indexación), la búsqueda resultará extremadamente rápida, ya que no se necesitará ninguna unión.
Si va a utilizar el procedimiento almacenado, asegúrese de tener en cuenta las opciones siguientes:
A continuación se ofrece un ejemplo de una búsqueda de procedimiento almacenado:
db2 "call db2ext.textSearch('\"libro\"','DB2EXT','COMMENT',0,2,1,1,?,?)"
El primer parámetro es el término de búsqueda. La sintaxis es exactamente la misma que tiene en las funciones de SQL. A continuación, especifique el nombre de índice y el esquema de índice. Si no ha enmascarado el nombre, se convierte a mayúsculas. Los dos números siguientes le proporcionan la probabilidad de obtener el resultado en fragmentos. Los dos valores de enteros siguientes especifican si se solicita información de resultado y coincidencia. Los dos últimos valores son valores de salida.
Consulte el Capítulo 16, Función de búsqueda del procedimiento almacenado para obtener más detalles sobre los parámetros.
Nota |
---|
Si solicita conjuntos de resultados más grandes, necesitará un espacio de tabla de usuario. Si no hay ninguno disponible, cree un espacio de tabla. En el ejemplo siguiente se crea un espacio de tabla en una plataforma UNIX: db2 "create user temporary tablespace tempts managed by system using ('/work/tempts.ts')" En un entorno DB2 distribuido, debe especificar explícitamente un espacio de tabla para las tablas de administración en un solo nodo para el procedimiento almacenado y realizar llamadas explícitamente en este nodo. |