> 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
Thanks Ian and Ronald will try to use exist with proc contents to produce the report. On Dec 22, 11:27=A0pm, r...@CDC.GOV ("Fehd, Ronald J. (CDC/CCHIS/ NCPHI)") wrote: > > 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. > > > =A0I 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. > > seehttp://www.sascommunity.org/wiki/List_Processing_Development#Speed_Con= si > derations > > instead use > Proc Contents data =3D Libref._all_ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 out =A0=3D Work.ListTables; > > that is a list of variables > you have to reduce that to a list of tables. > > Ron Fehd =A0the module/routine/subroutine maven =A0CDC Atlanta GA USA RJF= 2 > at cdc dot gov
On Dec 22, 11:27=A0pm, r...@CDC.GOV ("Fehd, Ronald J. (CDC/CCHIS/ NCPHI)") wrote: > > 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. > > > =A0I 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. > > seehttp://www.sascommunity.org/wiki/List_Processing_Development#Speed_Con= si > derations > > instead use > Proc Contents data =3D Libref._all_ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 out =A0=3D Work.ListTables; > > that is a list of variables > you have to reduce that to a list of tables. > > Ron Fehd =A0the module/routine/subroutine maven =A0CDC Atlanta GA USA RJF= 2 > at cdc dot gov Thanks Ian and Ronald will try with exist and proc contents tomorrow and let u guys know :-)