You might achieve the best possible performance when
using threaded Reads by specifying the
DBSLICE=
data set option for Sybase IQ in your
SAS operation. This is especially true if you defined an index on
one of the columns in the table.
SAS/ACCESS Interface to Sybase IQ
selects only the first integer-type column in the table. This column
might not be the same column where the index is defined. If so, you
can specify the indexed column using DBSLICE=, as shown in this example.
proc print data=iqlib.MYEMPS(DBSLICE=("EMPNUM BETWEEN 1 AND 33"
"EMPNUM BETWEEN 34 AND 66" "EMPNUM BETWEEN 67 AND 100"));
run;
Using DBSLICE= also
gives you flexibility in column selection. For example, if you know
that the STATE column in your employee table contains only a few distinct
values, you can customize your DBSLICE= clause accordingly.
datawork.locemp;
set iqlib2.MYEMP(DBSLICE=("STATE='FL'" "STATE='GA'"
"STATE='SC'" "STATE='VA'" "STATE='NC'"));
where EMPNUM<=30 and ISTENURE=0 and SALARY<=35000 and NUMCLASS>2;
run;