Hello isomorphic
We have a problem after migrating from version 3.1 to 5.0. This problem is actually performance degradation of some fetch operations.
We use mostly SQL DataSources.
Trying to figure out why is that happening, we concluded that this happens because the SQL queries which are generated are slightly different. The difference is that now generated WHERE clauses include lower() function, so that comparison is case insensitive. This, of course, is much slower, because indexation by PK is not used.
We tried to change DS to have defaultTextMatchStyle="exactCase", but this still does not help in two cases:
We know there is setting ignoreTextMatchStyle and ignoreTextMatchStyleCaseSensitive. If we understand it right, this would ignore textMatchStyle for all cases. But we still want to let the client decide if it is needed for special cases to compare fields case insensitive.
What we want to achieve is that if request contains no explicit textMatchStyle setting, the DataSource defaultTextMatchStyle will be used (for client and server requests).
And if we push the idea further, to be able to redefine textMatchStyle to be used, if it is not set in request either not in DS.
Please let us know if there is some way how to achieve it that we might overlook.
If not, can you find out how much effort it would be to support it?
We have a problem after migrating from version 3.1 to 5.0. This problem is actually performance degradation of some fetch operations.
We use mostly SQL DataSources.
Trying to figure out why is that happening, we concluded that this happens because the SQL queries which are generated are slightly different. The difference is that now generated WHERE clauses include lower() function, so that comparison is case insensitive. This, of course, is much slower, because indexation by PK is not used.
Code:
-- example of generated query with lower function SELECT TABLE.FIELD1 AS field1, TABLE.FIELD2 AS field2 FROM TABLE WHERE (LOWER(TABLE.FIELD1)='value')
- If there is a fetch after update, which is done by smartGWT automatically.
- Server side dsRequest.execute().
We know there is setting ignoreTextMatchStyle and ignoreTextMatchStyleCaseSensitive. If we understand it right, this would ignore textMatchStyle for all cases. But we still want to let the client decide if it is needed for special cases to compare fields case insensitive.
What we want to achieve is that if request contains no explicit textMatchStyle setting, the DataSource defaultTextMatchStyle will be used (for client and server requests).
And if we push the idea further, to be able to redefine textMatchStyle to be used, if it is not set in request either not in DS.
Please let us know if there is some way how to achieve it that we might overlook.
If not, can you find out how much effort it would be to support it?
Comment