A method is provided for optimizing data queries using switch predicates to determine which query execution plan or sub-plan (generated by a query optimizer) is executed. The method may be implemented for a query that has multiple possible forms of execution or outcomes depending on a run-time condition or element (e.g., the value associated with a variable). The query may be expanded, and the different possibilities may be addressed in different sub-queries of the expanded query (e.g., with the sub-queries being joined through a UNION operation). Switch predicates are added to one or more sub-queries to determine which one(s) will execute, based on the run-time condition. A separate query execution sub-plan may be generated for each sub-query and the sub-plans may be combined to form a master or overall plan that is executed at run-time. For example, a NULLIF predicate returns one set of data (e.g., a single row of a database table) if an associated variable has a non-null value and another set of data (e.g., all rows having a value within a particular column) if the variable has a null value. Switch predicates comprising Boolean operations to test whether the variable has a null or non-null value may be applied to sub-queries corresponding to the different run-time possibilities. Optimization sub-plans may be generated and only a sub-plan associated with a switch predicate that evaluates to true will execute. Because the NULLIF predicate has been reduced to its different forms of operation, each possibility can be optimized to form a very efficient execution sub-plan.

Un método se proporciona para las preguntas óptimas de los datos usando predicados del interruptor para determinarse cuál se ejecuta el plan o el secundario-plan de la ejecución de la pregunta (generado por un optimizador de la pregunta). El método se puede poner en ejecucio'n para una pregunta que tenga formas posibles múltiples de ejecución o de resultados dependiendo de una condición o de un elemento run-time (e.g., el valor asociado a una variable). La pregunta puede ser ampliada, y las diversas posibilidades se pueden tratar en diferente secundario-preguntan de la pregunta ampliada (e.g., con secundario-pregunta ser ensamblado con una operación de la UNIÓN). Los predicados del interruptor se agregan a unos o más secundario-preguntan para determinarse qué one(s) se ejecutará, basado en la condición run-time. Un secundario-plan separado de la ejecución de la pregunta se puede generar para cada secundario-pregunta y los secundario-planes se pueden combinar para formar un plan principal o total que se ejecute en el tiempo de pasada. Por ejemplo, un predicado de NULLIF vuelve un sistema de los datos (e.g., una sola fila de una tabla de la base de datos) si una variable asociada tiene un valor no nulo y otro sistema de los datos (e.g., todas las filas que tienen un valor dentro de una columna particular) si la variable tiene un valor nulo. Cambie los predicados que abarcan operaciones boleanas a la prueba si la variable tiene un nulo o el valor no nulo se puede aplicar a secundario-pregunta corresponder a las diversas posibilidades run-time. Los secundario-planes de la optimización pueden ser generados y solamente un secundario-plan asociado a un predicado del interruptor que evalúe para verdad se ejecutará. Porque el predicado de NULLIF se ha reducido a sus diversas formas de operación, cada posibilidad se puede optimizar para formar un secundario-plan muy eficiente de la ejecución.

 
Web www.patentalert.com

< Method for retrieving semantically distant analogies

< Method for querying a database in which a query statement is issued to a database management system for which data types can be defined

> Extensible user interface for a distributed messaging framework in a computer network

> Methods and apparatus for using a modified index to provide search results in response to an ambiguous search query

~ 00075