I would like to know the maximum no of descriptors/superdescriptors a adabas file can have in perspective of good performance.
I assume descriptors are proportional to no of fields on file. More fields - more descriptors. Is that correct ?
Does more descriptors impacts the file performance ?
Is that because of Inverted Lists ? How do we say that a particular file has reached maximum descriptors ?
Could someone please help me in resolving the above queries.
An Adabas file contains elementary fields (which may also be descriptors), groups, superdescriptors, and subdescriptors. Each has a 2-character name. There is a maximum of 926 names per file.
From here on, I’ll use the term descriptor generically, to include elementary descriptors, subdecriptors, and superdescriptors.
There used to be a maximum of 200 descriptors per file, but this restriction may have been lifted. Since superdescriptors are comprised of components of elementary fields, you can have a file with more descriptors than elementary fields.
For each descriptor, an inverted list is maintained. For each record addition, update, and deletion, Adabas needs to maintain all the inverted lists for the file. This maintenance (overhead) impacts performance, but performance is relative. What is “good” performance? A better question is, what is acceptable performance? You can add more descriptors as long as performance is acceptable.
Aim for overall application performance. The addition of a descriptor is justified if it improves application performance. Often a descriptor can be used to reduce dramatically the number of records rejected in a processing loop. Rejected records also should be considered overhead.
This is a very difficult question to answer. It depends on many factors.
In principle the performance will only suffer if you are updating.
And only if the fields you update in a record is a descriptor or part of descriptor. If you update non-descriptor fields no maintenance of the inverted list(index) is necessary.
But descriptors may also improve performance. Descriptors can improve the selecting of records and require fewer resources to get the records.
The previous responses are correct, but let me put it another way and, I hope, make things clearer. Whenever you define a descriptor on a file you are trading performance on stores, updates, and deletes for performance on reads and finds (and histograms.) You
Thank you ! All for the detailed information. This really helps me.
Now, have one more query with Super Descriptor.
Am trying to READ the adabas file using a super descriptor but couldn’t succeed. Got an error stating the super descriptor is a periodic group.
Found that Periodic Group Super Descriptors can be used with Histogram but not with READ.
Is there any reason behind restricting this descriptor type usage to Histogram ?
Thank you Matthias for the document.