i am a new to natural/adabas. I just want to know which is the most efficient database access among read physical, read logical, read by isn, histogram and find, or does it depends on when and how you are going to use it... Please enlighten me.. Thanks
as a rule of thumb you use FIND to select one or a few specific records and READ for mass data processing. But to be honest this is almost oversimplified.
Please get more specific information in the natural programming guide.
“Please enlighten me”
Enlightenment does not come from the answer to a single question. It comes from education (Adabas and Natural).
Here is a sample list (almost assuredly incomplete) of what you should know with regard to Adabas: (others, please add to list)
ACT (Address Converter Table)
Variable length vs fixed length
MUs (Multiple valued fields)
PEs (Periodic Groups)
Null Suppression (esp as it relates to descriptors, MUs, and PEs)
ISNs (user assigned, adabas assigned (reusable and non reusable))
Direct Calls (not necessarily to write, but to understand)
Format, Record, Search, Value Buffers
Update & hold logic
Read Physical, Logical, BY ISN
FIND search criteria and algorithms
Super, Sub, and Hyper descriptors
And finally, and most important of all, the name of the person(s) in your shop most familiar with Adabas and Natural.
Read physical requires the least resources on behalf of Adabas to get you a record. But since you can not specify any criteria, you get a random record.
So unless you want to read all the records of a file (in random order and with the risk of getting records twice, if somebody else can update the file) read phyisical is rarely useful from an application point of view.
Histogramm does not access DATA.
The performance difference between read logical and find is often over-judged and does rarely matter much. Of course there are functional differences.
In general just concentrate on your application logic.