It doesn't have to pass a restriction to the database; all it has to do is to stop when it has enough records. How many records it brings back and then throws away is likely to depend on buffer sizes and other options. My experience with Oracle is that it does not read the entire data set when you have specified OBS=. Something I would like to know is how to discover how many records were transferred through SAS/Access. If you are reading a partitioned table and specify SASTRACE=',,t,' you will get a display in the log showing the number of records processed by each thread. But not if it's a non-partitioned table.
... View more