03-26-2013 03:56 AM
I have huge dataset it takes more then a day to execute the code and some times it hangs the SAS system , execute is done very slowly.
I will be very thank full is some one help to guide how to allocate the maximum RAM memory to SAS system.
presently i am havine 4GB of RAM and i wanna to allocate 3GB to SAS system.
i tried to do for this file
"C:\Program Files\SASHome\x86\SASFoundation\9.3\nls\1d\sasv9.cfg" -realmemsize 0
"C:\Program Files\SASHome\x86\SASFoundation\9.3\nls\1d\sasv9.cfg" -memsize MAX
"C:\Program Files\SASHome\x86\SASFoundation\9.3\nls\1d\sasv9.cfg" -memsize 3G
but none fo it is working fine.
03-26-2013 04:24 AM
What do you it doens't work (fine)?
If you are not sure whether the option is set, put a
proc options group=memory ;
in your program.
If you don't know in which configuration file to out the option, just ad it to the beginning of you long running program.
But, 3GB RAM doesn't sound much compared to the running time. So I assume that there are other bottleneck than the memory. To help you further we need some more information, like how large is your table(s), the code. Applying options fullstimer; will help you understand where the bottlenecks are.
Other than memory, what is the configuration of your system, I/O, disk setup etc?
03-26-2013 06:17 AM
thanks for reply,
executed proc option;run;
SORTSIZE=268435456 Size parameter for sort
SUMSIZE=0 Upper limit for data-dependent memory usage during summarization
MAXMEMQUERY=0 Maximum amount of memory returned when inquiring as to available space
MEMBLKSZ=16777216 Size of memory blocks allocated to support MEMLIB and MEMCACHE options.
MEMMAXSZ=2147483648 Maximum amount of memory allocated to support MEMLIB and MEMCACHE options.
LOADMEMSIZE=0 Suggested memory limit for loaded SAS executables
MEMSIZE=3941230080 Specifies the limit on the total amount of memory to be used by the SAS System
REALMEMSIZE=0 Limit on the total amount of real memory to be used by the SAS System
but i cant see the option to increase the RAM memory, Dataset has 850 columns and 100 thousand rows.
code is quite big has 1000 line code complex macros,inline veiws and proc sql code are written.
i have added index were ever necessary but still code is taking too much time to execute.
system as 4GB ram and dual core processor.
03-26-2013 06:28 AM
But MEMSIZE is already 3,5 GB - you can't possible get more...:smileyconfused:
So, if you have an I/O constraint (se fullstimer), you could benefit by using compress (binary if you have most numeric columns, else char/yes).
If your numerical columns are mostly integers, try to someway specify less than the default 8 bytes for storage.
options msglevel=i; will let you know if your indexes is being used.
But, 1000 line code with macros...I think you should prioritize to optimize the code. Look in the log to which step(s) consumes the most resources (time, memory).