Join files bye one or more keys

Hi !

i need to increase the performance of one process that read many records and one way is to generate all files and after join them .

But how can I do it ? ADABAS have utilities ?


Not clear what you are asking…

  1. if you need to read many records, super-descriptors and prefetch/multifetch can help. In some cases, a read physical is the most efficient approach (rule of thumb: if reading more than 20% of records in the file, use read physical: the rule is based on approximate number of records per blocks)
  2. “generate all files” - not sure what this is in Adabas context
  3. “join them” - typically, logical joins are done with nested loops: make sure you have appropriate descriptors and/or super-descriptors defined to support the looping

Along the lines of Doug’s response, there are ways to speed up massive processing. I wasn’t clear though whether you actually need to process so much data, or if you are just weeding through a lot of data to retrieve or process a small subset or single record.

If the actual record set you wish to retrieve and process is small, you may wish to discuss with your DBA. It is possible that reading by a different superdescriptor on the file will reduce your processing needs. If you need to, have a new superdescriptor built that will allow you to read only those records you wish to retrieve and none of the ones you don’t. This would certainly speed up your program.

From your question, it sounds like you are most familiar with SQL processing on relational databases where you have little control over what the database does to fulfill your request. With Natural/Adabas, you program the access method and index used with the syntax of your READ statement in order to affect more efficient processing. Nested READs can be exceptionally more efficient than any kind of joins.