View source | View content page | Page history | Printable version   

Projects:Foreign Key Filtering Performance Improvement/Technical Specification

Introduction

There are two possible ways to filter a foreign key column:

By default a) would result in a criteria like this {fieldName: columnName$_identifier, operation: 'equals', value:...}, and b would result in something like: {fieldName: columnName$_identifier, operation: 'iContains', value:...}.

a) should use a more efficient efficient criteria. Instead of filtering using the column identifier, the column id should be used. That way the indexes defined for that column could be used, and the query would have better performance.

This project affects only to option a).

This project will also address the change of the join done to create the query resulting from filtering the grid. Currently 'left join' is always used, but if certain conditions are met an 'inner join', which has better performance, can be used.

Filtering Using the ID - Technical Considerations

Left Join Vs Inner Join - Technical Considerations

An inner join performs better than a left join, but they are not always interchangeable. These two conditions must be met in order to be able to use an inner join when creating a query due to some foreign key columns of the grid being filtered:

Retrieved from "http://wiki.openbravo.com/wiki/Projects:Foreign_Key_Filtering_Performance_Improvement/Technical_Specification"

This page has been accessed 877 times. This page was last modified on 9 July 2014, at 15:31. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.