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 (September 1996, week 1)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Wed, 4 Sep 1996 11:32:29 EDT
Reply-To:     Gerry <STATMAN@PACEVM.DAC.PACE.EDU>
Sender:       "SAS(r) Discussion" <SAS-L@UGA.CC.UGA.EDU>
From:         Gerry <STATMAN@PACEVM.DAC.PACE.EDU>
Organization: Dept of Academic Computing, Pace University
Subject:      NYASUG Meeting Announcement
Comments: To: SASnet <SAS-L%UGA.BITNET@PACEVM.DAC.PACE.EDU>

For members of SAS-L in the Tri-State area who are also members of the New York Area SAS Users Group (NYASUG):

PET Party: Performance And Efficiency Techniques

The next meeting of the New York Area SAS Users Group will be on Wednesday, September 11th. Due to scheduling conflicts, the meeting will not be held at our usual meeting site at Merrill Lynch.

Chase Manhattan Bank will host this meeting at its Chase Plaza building. This is NYASUG's first time at Chase, and we thank them for hosting the meeting. Directions to Chase appear later in this note.

This will be an all day meeting, with 6 scheduled presentations. The theme of this meeting will be performance and efficiency techniques for SAS applications.

The following are abstracts of the scheduled presentations:

------------------------------------------------------------------------

Change Your Life With VIEWS By Kim Kolbe Ritzow

The ability to create VIEWs of our data is new starting with version 6.07 of base SAS software. A VIEW is a logical representation of the data, which means it does not physically contain data values like a traditional SAS dataset. In a VIEW, data values are materialized when- ever the VIEW is invoked. VIEWs can sometimes make our programs more efficient, and other times, less efficient. This paper will help you better understand the issues relating to creating VIEWs and will also help you in knowing when to use a VIEW and when not to.

Randomly Accessing Files Using The KEY= Option By Kim Kolbe Ritzow

The KEY= option on the SET or MODIFY statement is new starting with version 6.07 of the base SAS system and allows direct access to an observation nonsequentially based on an indexed value. This paper will provide examples of how the KEY= option is used, and compare this type of table lookup technique with the more traditional methods in terms of efficiency.

Kim Kolbe Ritzow has been a SAS user since 1982. In her current position as a SAS trainer and consultant, she uses a wide-variety of the SAS software products to develop SAS applications and training materials.

Kim is a frequent contributor to SUGI, MWSUG (MidWest SAS Users Group) and various local SAS user group organizations. She has been the reci- pient the past three years of the best speaker award in the Tutorials section at the MWSUG conference.

------------------------------------------------------------------------

Production SAS Programs: Efficiency Coding Techniques By Gerard T. Pauline

For ad hoc, one time use programs, efficiency is usually not a major concern. This is not true for "production" applications, programs that will be run repeatedly by a site's user population. For production programs, efficiency must be an integral part of the development process.

This is especially a concern for production code written in the SAS language. As SAS has become prevalent in the production environment, it has gained a somewhat unfair reputation as a resource hog, parti- cularly when compared to langauges such as C, PL/I and COBOL.

Part of what makes SAS appeal to a wide spectrum of users, its many builtin features and default services, are also responsible for its greater resource utilization. Knowing when to exploit and when to manually override these services can result in significant performance gains.

This paper takes a "code-centric" approach to presenting techniques, framed within a set of programming conventions, that should for the most part be platform independent. The primary focus will be on the Data Step compiler, with special emphasis given to techniques that optimize the processing of large, raw datafiles.

Topics, along with illustrative code examples, will include maximizing storage, iterative loop optimization, I/O optimization, array process- ing, "subroutines", how (and when) to manually code services normally provided by the compiler, using the Stored Program Facility, and exploiting operating system facilities from the Data Step.

Also discussed will be step reduction, the use of code structure as a debugging tool and the co-operative use of SAS and other software in a multiple production language environment.

"Pseudo" Executable SAS Program Modules By Gerard T. Pauline

In production applications written in langauges such as C, PL/I and COBOL, the programmer writes the source code, then compiles and links the code into an executable module.

Beginning with version 6 of the SAS System, compiled Data Step code could be stored with the Stored Program Facility. However, SAS programs still consisted of "step" combinations, containing essentially "source" statements.

This paper presents a methodology for creating "pseudo" executable SAS program modules in which PROCs or "PROC packages" can be invoked from a compiled and stored Data Step.

This presentation will contain a brief overview of the Stored Program Facility, and why it should be used for production applications, along with a discussion of the Stored Macro Facility, and how the two can be used together.

Gerry Pauline is a Programmer / Analyst with the Department of Academic Computing at Pace University, where he oversees applications development. A SAS user for 9 years, he implements and supports database and informa- tion systems development in C, PL/I, REXX and the SAS System.

Presently, he is very involved in the university's World Wide Web and Intranet initiatives. Current programming interests include the Java language and VRML.

------------------------------------------------------------------------

Efficiency Tips With An Emphasis On Sorting By Bob Virgile

This is a collection of tips, some old and some new. Taken from the course notes for EFFICIENT EVERYDAY PROGRAMMING, these tips include some of the more effective techniques for cutting down CPU time. Many of the tips deal with sorting data efficiently, while a few concern other common functions such as reading raw data and summarizing data.

Exception Reports For Zero Observations By Bob Virgile

When reporting criteria select zero observations for printing, the user gets no printout. The user cannot tell whether the program failed or worked properly. So the user calls you. How can you prevent this ? This presentation, based on a similarly titled chapter in the book REPORTING FROM THE FIELD, delves into the programming issues involved in keeping the user informed whether or not your program selects observations to print.

Bob Virgile is an independent SAS teacher and consultant. He has de- veloped and taught SAS classes for 14 years, and has presented many papers at regional and international SAS conferences. He also creates and presents SAS problem-solving contests at these conferences, and recently completed a book (available through SAS Institute) based on the contests.

------------------------------------------------------------------------

Large Data Volume: Tricks of The Trade By Allison Levine

While working with 30 million observations and a multitude of variables, one can encounter many problems. Proc Summary abends, the code becomes so difficult to follow you need a road map and variables seem to multi- ply on their own. Then, when you finally get everything working, you get exiled to tape because your files fill half the DASD in the shop. What's a programmer to do ?

This paper illustrates several techniques used by the author to handle these problems. Several options for summarizing extremely large SAS files are presented. This includes how to optimize Proc SUMMARY's data capacity and when to use Data Step summarization. In addition, advanced methods to minimize tape processing and simplify code bloat using data views, arrays and macros will be discussed. Finally, we'll discover how to get more than one piece of information from a user defined format.

Allison Levine has been using SAS extensively since 1981 and is an independent SAS consultant in the New York metropolitan area. Her experience spans multiple areas including computer performance, chargeback and database marketing.

------------------------------------------------------------------------

The agenda for the September 11th meeting is:

08:30 - 09:00 Continental Breakfast

09:00 - 10:00 Production SAS Programs: Efficiency Coding Techniques

10:00 - 10:30 Break & Random Access

10:30 - 11:15 Change Your Life With VIEWS !

11:15 - 12:15 Efficiency Tips, With An Emphasis On Sorting

12:15 - 01:30 Lunch

01:30 - 02:15 Randomly Accessing Files Using The KEY= Option

02:15 - 02:45 "Pseudo" Executable SAS Program Modules

02:45 - 03:00 Afternoon Break

03:00 - 04:00 Large Data Volume: Tricks of The Trade

04:00 - 05:00 Exception Reports For Zero Observations

------------------------------------------------------------------------

Location: The Chase Manhattan Bank building is located at 55 Water Street between Old Slip (an extension of William Street) and Broad Street next to the Vietnam Veterans Memorial (lower Manhattan). The meeting is on the 13th floor.

Subway: IRT (#2 or #3) to Wall Street -Or- IRT (#1 or #9) to South Ferry -Or- BMT "J", "M" or "Z" to Broad Street -Or- BMT (#4 or #5) to Bowling Green -Or- "N" or "R" to Whitehall Street -Or- IND "A" To Nassau Street (long walk to site)

Bus: M15 to Broad Street

------------------------------------------------------------------------

For further information about this meeting, or the New York Area SAS Users Group, please contact the group's liaison:

Jean LaFrance FISA 111 8th Avenue - 13th Floor New York, NY 10011 (212) 206-3116


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