LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (December 2008, week 4)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Mon, 22 Dec 2008 17:27:13 -0500
Reply-To:     "Fehd, Ronald J. (CDC/CCHIS/NCPHI)" <rjf2@CDC.GOV>
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         "Fehd, Ronald J. (CDC/CCHIS/NCPHI)" <rjf2@CDC.GOV>
Subject:      Re: Dictionary problem with Parallel processing
In-Reply-To:  <f3f15d5c-2f22-48f8-a33d-b84bf025eb3d@b38g2000prf.googlegroups.com>
Content-Type: text/plain; charset=us-ascii

> From: vijayakumar > > I am facing strange problem, my environment is Sun Solaris, SAS 9.1.3. > > Situation: > > I want to create summary report for the libraries about no of obs, > when was the data set created and library name etc. > > One main job started to run which in turn creates around 30 to 50 > parallel jobs in which I have to create summary report specifically > for two libraries for all those parallel jobs. > > I have used dictionary. tables and dictionary. members to get the > report created but every now and then I am getting an error saying the > "Lock was not available for the dataset and held by some process". > > Solution in Mind: > > Is this can be avoid if I use sashelp.vtable and sashelp.vslib?

[sound of alarm bells going off here]

> Since > as far as I know the dictionaries will open the libraries to get the > above said key things but these sashelp views can be other way around > to avoid these issue? > > I need your expert's advice on this to resolve this issue.

summary: totally avoid reading sashelp views in production code

reason: they are derivatives of SQL dictionaries and are an order of magnitude slower i.e.: takes 10 times as long than Contents which reads information for one specific libref.

see http://www.sascommunity.org/wiki/List_Processing_Development#Speed_Consi derations

instead use Proc Contents data = Libref._all_ out = Work.ListTables;

that is a list of variables you have to reduce that to a list of tables.

Ron Fehd the module/routine/subroutine maven CDC Atlanta GA USA RJF2 at cdc dot gov


Back to: Top of message | Previous page | Main SAS-L page