Scope of Threaded Reads

SAS steps called threaded applications are automatically eligible for a threaded Read. Threaded applications are bottom-to-top fully threaded SAS procedures that perform data reads, numerical algorithms, and data analysis in threads. Only some SAS procedures are threaded applications. Here is a basic example of PROC REG, a SAS threaded application.
libname lib oracle user=scott password=tiger;
proc reg simple
data=lib.salesdata (keep=salesnumber maxsales);
var _all_;
run;
For DBMSs, many more SAS steps can become eligible for a threaded Read, specifically, steps with a read-only table. A libref has the form Lib.DbTable, where Lib is a SAS libref that "points" to DBMS data, and DbTable is a DBMS table. Here are sample read-only tables for which threaded Reads can be turned on.
libname lib oracle user=scott password=tiger;
proc print data=lib.dbtable;
run;

data local;
set lib.families;
where gender="F";
run;
An eligible SAS step can require user assistance to actually perform threaded Reads. If SAS cannot automatically generate a partitioning WHERE clause or otherwise perform threaded Reads, the user can code an option that supplies partitioning. To determine whether SAS can automatically generate a partitioning WHERE clause, use the SASTRACE= and SASTRACELOC= system options.
Threaded Reads can be turned off altogether. This eliminates additional DBMS activity associated with SAS threaded Reads, such as additional DBMS connections and multiple SQL statements.
Threaded Reads are not supported for the pass-through facility, in which you code your own DBMS-specific SQL that is passed directly to the DBMS for processing.