Show TOC

Syntax documentation*QUERY_SIZE Locate this document in the navigation structure

Allowed uses: By Commit, MDX

*QUERY_SIZE = 0 | 1 | 2

When the module runs in multirule logic mode (*LOGIC_MODE = 2), it automatically tries to group the regions of data sharing the same logic to execute. It tries to run the largest possible queries against a given logic, to maximize the speed of execution. In many cases, however, the resulting queries may be too large to fit in memory, and the performance of large queries can actually deteriorate significantly, instead of improving.

To prevent this situation, the administrator can use the *QUERY_SIZE instruction with the following values:

  • 2 is the (default) largest size of queries

  • 1 is an intermediate size, and

  • 0 is the smallest practical size

Note Note

Note that the effects of this instruction combine with those of the instruction XDIM_MAXMEMBERS, in defining the scope of the queries ultimately being run. Identify the appropriate combination of these two settings, to identify the best compromise between performance and memory usage.

End of the note.

Breaking the query in multiple queries (when scanning a data file)

When the rules module scans a data file to build a region against which to run, it breaks the query into many smaller queries, according to the different combinations of members it finds in the file, for the dimension defining the scope. See *SCOPE_BY. In this situation, similar to the case of multiple rules (logic_mode = 2), the program can try to maximize the size of the query, according to the setting of the QUERY_SIZE parameter.