Previous Topic

Book Contents

Book Index

Next Topic

Explanation

The method's limitations stem from the generally positive fact that not all data a user is currently working with has to be read to memory.

Encountered limitations may apply to the following operations:

  • Sorting by transient (calculated or translated) attribute
  • Aggregate functions on transient (calculated or translated) attribute
  • Aggregate functions on structured attribute

Although not limited in any situation, object count is also mentioned in the following explanations

It is important to distinguish between these two situations:

  • Situation 1: All requested data fits into memory
  • Situation 2: It is not possible / desirable to read all of the requested data to memory

Situation 1: All requested data fits into memory

Operation

Explanation

Object COUNT

Done in memory

AGGREGATE FUNCTIONS

Done in memory, possible to do so for any type of attribute.

SORTING

Initial "elementary" sorting (that is at least sorting by primary key) is done in database, sorting by the required attribute is done in memory. It is possible to do so for any type of attribute.

Situation 2: It is not possible / desirable to read all of the requested data to memory

Operation

Explanation

Object COUNT

Done in database

AGGREGATE FUNCTIONS

Should be performed in database because data in memory does not represent the entire selection.
PROBLEM:
Impossible to perform in database for some attributes (transient (calculated or translated) attribute, structured attribute)
CONSEQUENCE:
N/A displayed instead of the function result when an aggregate function has been used on a column displaying an attribute of the above mentioned types.

SORTING

Sorting by the required attribute should be done in database because data in memory does not represent the entire selection.
PROBLEM:
Impossible to sort in database for some attributes (transient (calculated or translated) attribute). Initial "elementary" sorting (that is at least sorting by primary key) is done in database, first batch of objects read to memory (from the viewpoint of the required sorting the order is "random"), this first batch is sorted by the required attribute in memory

 

RESULT:
Partial Sorting = an incomplete collection has been sorted, which means:

1 - The fact that an object cannot be found among the objects in the catalog (even if alphabetically listed) doesn't have to mean the object is not in the database
2 - If more objects were read, another incomplete collections would be added and the objects would be re-ordered over and over again, each time forcing the user to re-evaluate the search result

 

CONSEQUENCE:
Further incremental reading is disabled (read scroll bar displayed)

WORKAROUND:
Make the search condition more restrictive (so that the number of objects matching the condition would fit into memory)
or
Try sorting by another attribute (of other type than those mentioned above)

In This Chapter

Data Fits Into Memory

See Also

Limitations

Example

Overview