Exploring, predicting and reporting with SAS Visual Analytics and SAS Visual Statistics

Programmatically check LASR Table Status

Posts: 25

Programmatically check LASR Table Status

Hello guys,


I have been looking around the communities and Google today trying to find a way to do this but I havent been able to. I am new-ish to SAS programming so please bear with me.


I would like to write a program that automatically checks which tables are loaded in LASR and do a proc contents ONLY to the tables that are currently loaded. 


I have looked at Proc imstat, Proc SQL, Proc LASR to see if there is a way to check Load/Unload status on a LASR table but I am coming up empty.


Is there a SAS Variable(either in dictionary or otherwise) that provides this information, and if so, which Proc would work best?



Trusted Advisor
Posts: 1,848

Re: Programmatically check LASR Table Status

Im not familiar with SAS Analytics, but I have the feeling that you might find answer or guide in the next link:




Look also to the contents on left side of the page.


Using SAS BASE / SQL you can get all availabale tables and columns by:


Proc sql;

        create table  u_name_it as select *

        from dictionary.columns;



I don't know how to recognize LASR tables and distinguish them from others.

If you know add a WHERE statment to the SQL, to subset them only.


Posts: 25

Re: Programmatically check LASR Table Status

Dictionary.tables doesnt seem to have an attribute for Loaded/Unloaded status.


I also tried Dictionary.columns it either makes my SAS Session unresponsive, or errors out when it tries to read an unloaded table.

Super User
Posts: 4,018

Re: Programmatically check LASR Table Status

A great question and one I'd like to know the answer for too. I did a bit of searching and I think the answer is here in the special memory usage tables available for SAS VA:





Occasional Contributor
Posts: 13

Re: Programmatically check LASR Table Status

[ Edited ]

I wrote a macro to do something similar. I wanted to check a table's load status and, if it is unloaded, fire a stored procedure that loads it. It's for reloading critical tables after a reboot, but you could adapt it for your needs. It uses the _T_TABLEMEMORY set in the LASR library.


Instead of checking a specific table you will want to filter down the loadedtables dataset and then iterate through the rows to fire your PROC CONTENTS.



data loadedtables;

%macro ifunloaded(tablename, thescript);
	proc sql noprint;
		select count(*) into :OBSCOUNT from loadedtables where tablename = upper(&tablename) and uncompressedsize > 0;
	%if &OBscount = 0 %then %do;
		%put "&tablename is unloaded, we need to reload it";
		proc stp program=&thescript; 
		put "Table &tablename was unloaded and reload was attempted.";
	%else %do;
		%put "&tablename is already loaded, leave it alone";
%mend ifunloaded



Posts: 25

Re: Programmatically check LASR Table Status

Thanks for the replies, will look into each and every one today and let you know which one worked best.

Posts: 25

Re: Programmatically check LASR Table Status

So you are basically checking if there are any observations first. That is very ingenious. I will keep it in mind. Will continue to research if there is an actual flag that can be surfaced via Base SAS code first though.
Ask a Question
Discussion stats
  • 6 replies
  • 4 in conversation