as it is coming from a base SAS data set, you can vary Oliver's program, just a little to obtain top performance from v.large tables.[pre]
DATA last10 ;
do _n_ = total_n - 9 to totalN ;
SET dataset NOBS=totalN POINT=_n_ ;
output ;
end ;
RUN ; [/pre]
Using POINT access ensures you read only the last 10 rows, even if your table has a billion rows.
Total_n is acquired at compile time, even before the SET statement is executed.
Of course, that information may not be available if the input dataset does not support the "point access" that base SAS tables allows. Examples of that limitation occur with data views and non-SAS tables like tables accessed through a SAS/Access to rdbms.
PeterC