Using
conventional processing, a SAS procedure (by means of the
SAS/ACCESS engine) receives all the rows of
the table from the database. All processing is done by the procedure.
Large tables mean that a significant amount of data must be transferred.
Using the new in-database
technology, the procedures that are enabled for processing inside
the database generate more sophisticated queries. These queries allow
the aggregations and analytics to be run inside the database. Some
of the in-database procedures generate SQL procedure syntax and use
implicit pass-through to generate the native SQL. Other in-database
procedures generate native SQL and use explicit pass-through. For
more information about how a specific procedure works inside the database,
see the documentation for that procedure.
The queries submitted
by SAS in-database procedures reference DBMS SQL functions and, in
some cases, the special SAS functions that are deployed inside the
database. One example of a special SAS function is the SAS_PUT() function that enables you to execute PUT function calls
inside the database. Other examples are SAS functions for computing
sum-of-squares-and-crossproducts (SSCP) matrices.
For most in-database
procedures, a much smaller result set is returned for the remaining
analysis that is required to produce the final output. As a result
of using the in-database procedures, more work is done inside the
database, and less data movement can occur. This could result in significant
performance improvements.
This diagram illustrates
the in-database procedure process.