|
Hi,
Hi
When we are trying to build MDDB from a table with multi million
distinct records after a long processing time PROC MDDB gives error
that memory exhausted and process aborted even though space is
available in work space of SAS.Unix Data warehouse server has 2GB RAM
and around 4GB Page file.when we tried same thing on windows with some
test data (Code is given below) we found that whenever PROC MDDB
procedure utility file or temp file larger than RAM size it start
dumping into Swap file of operating system instead of SAS utility file
in work area. I have tried VMEMsize and PKSIZE option but it is no
use.
Regards
Yogesh Shah
/*Creating Three Diff Tables with 200 Distinct Values*/
data date(drop =i);
do i = 1 to 200;
year = year(i);
qtr= qtr(i);
month=month(i);
dow=weekday(i);
day=day(i);
date = i;
output;
end;
run;
data cust(drop =i);
do i = 1 to 200;
cust_group = year(i);
cust_slmn= qtr(i);
cust_type=month(i);
cust_city=weekday(i);
town=day(i);
cust = i;
output;
end;
run;
data prod(drop =i);
do i = 1 to 200;
prod_group = year(i);
prod_slmn= qtr(i);
prod_type=month(i);
prod_city=weekday(i);
prod1=day(i);
prod2 = i;
count= 1;
output;
end;
run;
/*Taking Cartesian product of All three products so no of rows will be
200*200*200*/
proc sql;
create table test as
select * from date,prod,cust;
quit;
/*Creating MDDB*/
proc mddb data = test out=hi ;
class year
qtr
month
dow
day
date
prod_group
prod_slmn
prod_type
prod_city
prod1
prod2
cust_group
cust_slmn
cust_type
cust_city
town
cust ;
var count/sum;
run;
|