Problema

En Cuentas por Pagar (Actualizaciones>Cuentas por Pagar>Cuentas por Pagar o Actualizaciones>Cuentas por Pagar>Funciones Ctas Pagar), al montar un filtro de usuario con el operador "Contiene la expresión", causa lentitud extrema al aplicar este en el browse de la rutina.

Solución

Cuando el tema es filtrar registros, hablamos, de forma relativa, de consultas (queries) ejecutadas en la base de datos, utilizando una definición de cláusulas basadas en lo que el usuario desea seleccionar en este filtro de registros. Al utilizar los operadores "Contiene la expresión" y "No contiene", estaremos automáticamente construyendo la consulta de selección de los registros con las cláusulas LIKE y NOT LIKE. Estas cláusulas tienen como finalidad encontrar una expresión en texto dentro de un determinado campo, ya sea al principio, en el medio o al final de su contenido. Debido a esto, el índice de búsqueda de la base de datos se ve comprometido, haciendo que la lectura de datos para la selección se realice bloque por bloque (full table scan) en lugar de dirigir la búsqueda por un índice existente en la tabla (index search). Por este motivo, no es aconsejable utilizar estos operadores en filtros para tablas que contienen una proporción extremadamente grande de registros, ya que la ejecución de la query en la base de datos no será plena. Por lo tanto, no hay viabilidad de optimizar el rendimiento de la rutina.
Aconsejamos utilizar operadores más precisos como "Igual a" y "Está contenido en", además de hacer referencia a campos que se pueden utilizar como clave de búsqueda, como por ejemplo el número del título (campo Nº Título), código del proveedor (campo Proveedor), etc.

Artículos relacionados

No hay.