Programming Tricks For Reducing Storage And Work Space Curtis A. Smith, Defense Contract Audit Agency, La Mirada, CA.
|
|
|
- Vivien Barton
- 9 years ago
- Views:
Transcription
1 Paper Programming Tricks For Reducing Storage And Work Space Curtis A. Smith, Defense Contract Audit Agency, La Mirada, CA. ABSTRACT Have you ever had trouble getting a SAS job to complete, although your SAS code is bug-free? Often, especially when processing large amounts of data, you can exhaust your storage space or the WORK library. Likely, there is a SAS code solution. Herein, the author will share some of his favorite tricks to squeeze more out of storage and WORK library space using SAS code to resolve resource limitations. All of the tricks will use SAS code from base SAS. This paper will cover subjects such as reducing the number of SAS data sets needed in the work space, reducing the size of SAS data sets, and cleaning up the work library. The author will concentrate on the DATASETS, DELETE, SUMMARY, and SORT procedures, the DROP, KEEP, COMPRESS, and OUT options of the Data Step, and the WHERE statement. SAS programmers at any level can benefit from these tips. INTRODUCTION In my endeavors to get my SAS jobs to complete when processing large amounts of data, I encounter temporary work space shortages as well as permanent storage space shortages. SAS, of course, uses its WORK library as the place to create and store temporary work data sets. A SAS job can require many temporary SAS data sets, even some that you may not reference in a DATA step or procedure. Of course, you decide where to store permanent SAS data sets. But sometimes, you may not have enough free space for the temporary or permanent SAS data sets you want to create. Exhausting temporary and permanent storage space is common. Many approaches to solve these problems are available. Many solutions involve the operating system. But, I will present solutions that involve only using SAS code and fall into three categories: Reduce the size of the SAS data sets Reduce the number of SAS data sets Clean up the storage space REDUCE THE SIZE OF THE SAS DATA SETS There are many ways to reduce the size of SAS data sets that you place in your temporary work space and in permanent storage. Below I share my favorite strategies. COMPRESSING FILES SAS can use compression algorithms to compress SAS data sets. This is a process of reducing the amount of space needed to store a SAS data set - it does not affect the data stored within that SAS data set. Using the COMPRESS= system or data set option, any SAS data set created on disk will be compressed. SAS data set compression can greatly reduce the size of SAS data sets. To use the COMPRESS= system or data set option, set the option to either "YES" or "BINARY." (In newer versions of SAS, CHAR can be used as an alternative to YES with the same result.) The COMPRESS=YES value uses an algorithm that works better with SAS data sets that are primarily comprised of character variables. On the other hand, COMPRESS=BINARY uses a different algorithm that works better with SAS data sets that are primarily comprised of many variables including many numeric variables. My experience has been that COMPRESS=YES reduces the size of the SAS data set by about 50 percent. An option to use with COMPRESS= is REUSE=. Specifying this option allows SAS to reuse space within the compressed SAS data set that has been freed by deleted observations. Otherwise, SAS cannot reclaim the space made available by deleted observations. Consider the following examples. /*USE THE DATA STEP COMPRESS OPTION*/ DATA TEMP.FILE2(COMPRESS=BINARY REUSE=YES); SET WORK.FILE1; WHERE REC_TYPE='1'; /*USE THE SYSTEM COMPRESS OPTION*/ OPTIONS COMPRESS=YES REUSE=YES; DATA WORK.FILE3; SET WORK.FILE1; WHERE REC_TYPE='1'; After running the DATA step with the COMPRESS= set to YES or BINARY you will see a message in your SAS log that looks something like this: NOTE: The data set WORK.FILE3 has observations and 20 variables. NOTE: Compressing data set WORK.FILE3 decreased size by percent. Compressed is 935 pages; un-compressed would require 1369 pages. I thought you might want to see some benchmark results. I took four SAS data sets with differing numbers of observations and variables. I started with uncompressed SAS data sets, then compressed with normal compression, then compressed with binary compression. File1 and File3 have 20 variables, 5 of which are numeric; and File2 and File4 have 29 variables, 10 of which are numeric. COMPRESS REDUCTION Obs Char Num YES BINARY File1 120, % 23.72% File2 183, % 49.22% File3 1,542, % 21.02% File4 6,976, % 46.61% In my examples, COMPRESS=YES always produced better results. However, the files with more variables and more numeric variables (File2 and File4) got almost the same benefit using 1
2 COMPRESS=BINARY. I recommend you try both methods with your files to determine which provides the better performance. In some cases, compressing a SAS data set will result in a file that is larger in storage size than the uncompressed original. When this happens, SAS will warn you with a message. Version 8 of the SAS System will not compress the SAS data set when the result would be a larger file size. Now take a look at the space savings (in this example, from MS- Windows). the same thing, one will be easier to use than the other depending the number of the existing variables you want to eliminate. Frequently, when creating a subset or summary SAS data set or just processing a SAS data set with a procedure, you do not need all of the variables in the source SAS data set. So delete those you do not need from the source SAS data set, and do so as soon as possible. However, be careful not to delete any variables that you will need. Many times I have fallen into the trap of dropping a variable from my input SAS data set and then referred to it in a WHERE statement. The solution, of course, is to keep the variable in the input SAS data set and drop it from the output SAS data set. Consider the example at the bottom of the previous column. Notice in the SORT procedure that we do not drop the REC_TYPE variable from the input (DATA=) SAS data set because we need it for the WHERE statement. If we had included it in the DROP= option on the input SAS data set, we would have received an error that the REC_TYPE variable was not on the input SAS data set. In this example, the SUMMARY procedure will produce a SAS data set with only the character variables identified in the BY statements and the four numeric variables identified on the VAR statement (plus, of course, the _FREQ_ and _TYPE_ variables created by the SUMMARY procedure, unless we drop them). So, why bother dropping the unwanted As you can see, the space savings are well worth the effort. In the case of File4, a reduction of nearly 500MB is nothing to gloss over. DELETE UNNEEDED VARIABLES Deleting unneeded variables can have a dramatic impact on the size of the SAS data set. For example, a variable of only five bytes in a SAS data set of one million observations will require five million bytes, or approximately 5MB. As soon as possible in your DATA steps and procedures, delete any SAS data set variables that you do not need. Use the data set DROP= option to identify which variables to delete, or use the KEEP= option to identify which variables to retain. Both will accomplish /*DROP UNNEEDED VARIABLES*/ PROC SORT DATA=DISK.WIP_DTL (DROP=TTDOTAMT TTDOTHRS TTDTOAMT TTDTOHRS TTDSRAMT) OUT=DISK.SORTED(DROP=REC_TYPE); WHERE REC_TYPE NE ' '; /*SUMMARIZE SORTED FILE*/ PROC SUMMARY DATA=DISK.SORTED MISSING; VAR YTDOTHRS YTDTOHRS YTDOTAMT YTDTOAMT YTDSRAMT; OUTPUT OUT=DISK.WIP_SUM (INDEX=(PBCODE) DROP=_TYPE_) SUM=YTDOTHRS YTDTOHRS YTDOTAMT YTDTOAMT; variables during the SORT procedure? Because by dropping those variables in the SORT procedure, our intermediate WORK SAS data set is greatly reduced in size. (And, we will also see a reduction in the time and space needed for sorting.) Let s take a look at the WIP_DTL and the SORTED file from Windows Explorer s point of view. Dropping five variables made a significant difference. Now look at the file properties from SAS point of view. First notice the SAS data set WIP_DTL. It contains 22 variables. Do Not Overlook the Obvious Delete unneeded variables as soon as possible. Even a two character variable can add up to a significant amount of space if you have many observations. 2
3 NOTE: There were observations read from the data set SUGI.QUARTER1. NOTE: The data set WORK.SORTED1A has observations and 24 variables. NOTE: PROCEDURE SORT used: real time 1:11.01 Memory 2130k Here s the SAS code for our second scenario. Notice the KEEP= option on the output SAS data set. In this scenario, we will be sorting all of the variables from the input SAS data set, but not writing all of them to the output SAS data set. Now, notice the SAS data set SORTED. It contains only 16 variables. /*DROP VARIABLES ON OUTPUT*/ PROC SORT DATA=SUGI.QUARTER1 OUT=WORK.SORTED1B (KEEP=WEEK PROJECT DEPT ACCOUNT MTDTOAMT MTDOTAMT MTDSRAMT); BY WEEK PROJECT DEPT ACCOUNT; Now, here s the SAS log from our second scenario. You will notice some improvement in processing time over our first scenario, but no memory improvement. NOTE: There were observations read from the data set SUGI.QUARTER1. NOTE: The data set WORK.SORTED1B has observations and 7 variables. NOTE: PROCEDURE SORT used: real time seconds Memory 2123k Deleting unneeded variables is such a great way to reduce space, I really want to emphasize this trick. I really want to emphasize this trick. When you reduce space, you can also reduce processing time and I/O time. Let s look at an example of sorting a SAS data set. First, we will sort it without dropping any of the unneeded variables. Second, we will drop the unneeded variables, but will we do so using a KEEP= option on the output SAS data set. Third, we will drop the unneeded variables, using a KEEP option on the input SAS data set. Look at the SAS log carefully, noticing the time and memory differences. Here s the SAS code for our first scenario, keeping everything. Now, here s the SAS code for our third scenario. This time, we re being smart and dropping all of the unneeded variables from the input SAS data set. /*DROP VARIABLES ON INPUT*/ PROC SORT DATA=SUGI.QUARTER1 (KEEP=WEEK PROJECT DEPT ACCOUNT MTDTOAMT MTDOTAMT MTDSRAMT) OUT=WORK.SORTED1C; BY WEEK PROJECT DEPT ACCOUNT; /*KEEP ALL VARIABLES*/ PROC SORT DATA=SUGI.QUARTER1 OUT=WORK.SORTED1A; BY WEEK PROJECT DEPT ACCOUNT; And, here s the SAS log for our first scenario. Finally, take a look at the SA Slog from our third scenario. NOTE: There were observations read from the data set SUGI.QUARTER1. NOTE: The data set WORK.SORTED1C has observations and 7 variables. NOTE: PROCEDURE SORT used: real time seconds Memory 2236k We do not see much difference in memory usage, but, wow, look at the processing reduction! In our first scenario, processing time 3
4 was over 1 minute. In our second scenario, processing time was over 50 seconds. But, by dropping the unneeded variables from the input SAS data set, processing time went down to just over 14 seconds! Just imagine what you can do with those extra 36 seconds! But, seriously, the important thing to note here is the percentage change. If the original sort had taken several minutes, the reduction in time would be very noticeable. So, in addition to reducing sort space, you can greatly reduce processing time as a result of the reduced space. Of course, when you drop unneeded variables from the input SAS data set, you don t affect the saved input SAS data set. SAS will just drop the specified variables as it reads the input SAS data set into the Program Data Vector. DELETE UNNEEDED OBSERVATIONS Any observations that are not needed in your temporary or permanent SAS data sets just take up space. So, delete them as soon as possible. Do this with a WHERE statement when processing SAS data sets in a DATA step or procedure, or an IF statement when processing external files in a DATA step. Consider your data needs for the SAS data sets you will create in your temporary work space and permanent storage space. If you will not need all of the observations in the SAS data set, get rid of those you do not need from your input SAS data set. Consider the sample SORT procedure in the above section as an example of using the WHERE statement to delete unneeded observations. REDUCE THE NUMBER OF SAS DATA SETS There are a number of strategies to use to reduce the number of SAS data sets processed and stored within the same temporary and permanent storage space. Let s look at my favorite strategies. OUTPUT SORTED SAS DATA SETS When you sort a SAS data set using the SORT procedure and you do not specify an output SAS data set using the OUT= option, SAS will overwrite the input SAS data set with the sorted SAS data set. To do this, SAS must create a temporary sorted SAS data set until the SORT procedure successfully completes. Then SAS will overwrite the old input SAS data set with the temporary sorted SAS data set. This method works, of course, but creates a temporary sorted file in the WORK library. If you are short on WORK space, this may be a problem. When you specify an output file for the sorted SAS data set you will still have two SAS data sets created: the input SAS data set and the sorted output SAS data set. However, in this situation you can place the sorted SAS data set somewhere other than the WORK library, such as another temporary SAS data library, a tape SAS data library, or a permanent disk SAS data library. Consider the following example. /*SORT TO OUT= DESTINATION*/ PROC SORT DATA=WORK.WIP_DTL OUT=TAPE.SORTED; BY PBCODE ACCOUNT PRIME CDATE; DELETE SAS DATA SETS BEFORE REPLACING THEM Whenever you update or replace a SAS data set with new data, SAS will create a temporary SAS data set to hold the new data until the DATA step or procedure successfully completes. Then SAS will overwrite the old input SAS data set with the one just created. This causes SAS to create a temporary SAS data set in the WORK library (I noticed that MS-Windows places this temporary SAS data set in the same library as the permanent SAS data set you are creating). Let s look at a real-life example under MS-Windows. /*OVERWRITE AN EXISTING SAS DATA SET*/ DATA DISK.WIP_DTL; SET TAPE.WIP_DTL; WHERE REC_TYPE NE ' '; If the WIP_DTL SAS data set already existed in the DISK library, the following would happen in the DISK library. Notice the temporary file created because the target output SAS data set already existed. This, of course, is wasting space. Instead, delete the existing SAS data set using the DATASETS or the DELETE procedure before running the DATA step or procedure that will update or replace the SAS data set. This method cannot be used, of course, if the existing SAS data set is needed as the basis for updating or replacing the SAS data set. Consider the following example. /*DELETE EXISTING FILE FIRST*/ PROC DATASETS LIBRARY=DISK NOLIST; DELETE WIP_DTL; QUIT; DATA DISK.WIP_DTL; SET TAPE.WIP_DTL; WHERE REC_TYPE NE ' '; USE AN ALTERNATE TEMPORARY LIBRARY When you do not specify a library for a SAS data set, SAS will place the data set in the WORK library. Of course, you can also specify the WORK library in the two level SAS data set name to place the SAS data set in the WORK library. When you are short of space in the WORK library and need to have more than one SAS data set in temporary storage simultaneously, an alternate approach is to create alternate temporary libraries. Yes, you can do this. Creating an alternate temporary library is a very simple process. Just allocate a temporary SAS data library on a different space than your library. How to do this is operating system dependent. On a PC, you must allocate the alternate temporary library on a hard disk drive other than the disk drive where the WORK library is allocated. If you allocate the alternate temporary library on the same hard disk drive, then the temporary library you allocate and the WORK library will be competing for the same limited space. Once you have allocated one or more alternate temporary libraries, use it for some SAS data sets that you need to place in temporary work space. For example (assuming your SAS WORK library is on the C: drive and you have a D: drive available): 4
5 LIBNAME TEMP "D:\LONG\WINDOWS\FOLDERNAME"; Then in your SAS program, you might do something like the following: LIBNAME CD "D:\LONG\WINDOWS\FOLDERNAME\DATA"; /*SPLIT THE INPUT FILE TO MULTIPLE STORAGE DESTINATIONS*/ DATA WORK.FILE1 TEMP.FILE2; SET CD.MASTER SELECT (DIVISION); WHEN ("01") OUTPUT WORK.FILE1; WHEN ("02") OUTPUT TEMP.FILE2; OTHERWISE DELETE; END; WORK library is not needed again after the first SUMMARY procedure has completed. Do Not Overlook the Obvious Do just like your mama told you...clean up after yourself. We can see the result in the WORK library, in this example, from MS-Windows. In this example, you are reading a permanent SAS data set stored on a CD and creating two temporary SAS data sets. The first temporary SAS data set is being written to the WORK library (WORK.FILE1) and the second temporary SAS data set is being written to the temporary library TEMP (TEMP.FILE2), which you have allocated on a hard disk drive other than the hard disk drive where SAS has allocated its WORK library. CLEAN UP THE STORAGE SPACE This tip is so obvious that overlooking it is easy. Simply delete SAS data sets in the WORK library, other temporary space, or permanent space when you no longer need them. Do this, of course, using the DATASETS or the DELETE procedure. Consider the following typical job stream. Here you will sort a permanent SAS data set to a SAS data set in the WORK library that you will then summarize. Then, you will sort another permanent SAS data set to a SAS data set in the WORK library that you will then summarize. The first sorted SAS data set in the /*SORT THEN SUMMARIZE FIRST FILE*/ PROC SORT DATA=DISK.WIP_DTL OUT=WORK.SORTED1; PROC SUMMARY DATA=WORK.SORTED1 MISSING; OUTPUT OUT=DISK.WIP_SUM SUM=YTDTOAMT; /*SORT THEN SUMMARIZE SECOND FILE*/ PROC SORT DATA=DISK.IND_DTL OUT=WORK.SORTED2; PROC SUMMARY DATA=WORK.SORTED2 MISSING; OUTPUT OUT=DISK.IND_SUM SUM=YTDTOAMT; In this example, you have a very large file, SORTED1, that is just taking up space while you sort and summarize your second SAS data set. Take a look at the following alternative. /*SORT THEN SUMMARIZE FIRST FILE*/ PROC SORT DATA=DISK.WIP_DTL OUT=WORK.SORTED1; PROC SUMMARY DATA=WORK.SORTED1 MISSING; OUTPUT OUT=DISK.WIP_SUM SUM=YTDTOAMT; /*DELETE USING PROC DATASETS*/ PROC DATASETS LIBRARY=WORK NOLIST; DELETE SORTED1; QUIT; /*OR, DELETE USING PROC DELETE*/ /* PROC DELETE DATA=WORK.SORTED1; QUIT; */ /*SORT THEN SUMMARIZE SECOND FILE*/ PROC SORT DATA=DISK.IND_DTL OUT=WORK.SORTED2; PROC SUMMARY DATA=WORK.SORTED2 MISSING; OUTPUT OUT=DISK.IND_SUM SUM=YTDTOAMT; 5
6 Instead, you can insert a DATASETS or DELETE procedure after summarizing the first SAS data set to delete the unneeded file. (Never heard of Proc DELETE? Neither had I until someone at SUGI 25 pointed it out to me. It has not been documented since version 5, but still works.) CONCLUSION SAS is such a powerful tool and functions so well with the operating systems on which it runs (most everything except a Commodore 64 and a TRSH 80) that there are ways around every problem. The problems associated with limited work space and limited permanent storage space can be resolved with a little resourcefulness. ACKNOWLEDGMENTS SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. indicates USA registration. Other brand and product names are registered trademarks or trademarks of their respective companies. CONTACT INFORMATION Your comments and questions are valued and encouraged. Contact the author at: Curtis A. Smith Defense Contract Audit Agency P.O. Box Fountain Valley, CA Work Phone: Fax: [email protected] 6
Efficient Techniques and Tips in Handling Large Datasets Shilong Kuang, Kelley Blue Book Inc., Irvine, CA
Efficient Techniques and Tips in Handling Large Datasets Shilong Kuang, Kelley Blue Book Inc., Irvine, CA ABSTRACT When we work on millions of records, with hundreds of variables, it is crucial how we
How to Reduce the Disk Space Required by a SAS Data Set
How to Reduce the Disk Space Required by a SAS Data Set Selvaratnam Sridharma, U.S. Census Bureau, Washington, DC ABSTRACT SAS datasets can be large and disk space can often be at a premium. In this paper,
Advanced Tutorials. Numeric Data In SAS : Guidelines for Storage and Display Paul Gorrell, Social & Scientific Systems, Inc., Silver Spring, MD
Numeric Data In SAS : Guidelines for Storage and Display Paul Gorrell, Social & Scientific Systems, Inc., Silver Spring, MD ABSTRACT Understanding how SAS stores and displays numeric data is essential
Labels, Labels, and More Labels Stephanie R. Thompson, Rochester Institute of Technology, Rochester, NY
Paper FF-007 Labels, Labels, and More Labels Stephanie R. Thompson, Rochester Institute of Technology, Rochester, NY ABSTRACT SAS datasets include labels as optional variable attributes in the descriptor
Paper 2917. Creating Variables: Traps and Pitfalls Olena Galligan, Clinops LLC, San Francisco, CA
Paper 2917 Creating Variables: Traps and Pitfalls Olena Galligan, Clinops LLC, San Francisco, CA ABSTRACT Creation of variables is one of the most common SAS programming tasks. However, sometimes it produces
PharmaSUG 2015 - Paper QT26
PharmaSUG 2015 - Paper QT26 Keyboard Macros - The most magical tool you may have never heard of - You will never program the same again (It's that amazing!) Steven Black, Agility-Clinical Inc., Carlsbad,
Anyone Can Learn PROC TABULATE
Paper 60-27 Anyone Can Learn PROC TABULATE Lauren Haworth, Genentech, Inc., South San Francisco, CA ABSTRACT SAS Software provides hundreds of ways you can analyze your data. You can use the DATA step
Importing Excel Files Into SAS Using DDE Curtis A. Smith, Defense Contract Audit Agency, La Mirada, CA
Importing Excel Files Into SAS Using DDE Curtis A. Smith, Defense Contract Audit Agency, La Mirada, CA ABSTRACT With the popularity of Excel files, the SAS user could use an easy way to get Excel files
The Essentials of Finding the Distinct, Unique, and Duplicate Values in Your Data
The Essentials of Finding the Distinct, Unique, and Duplicate Values in Your Data Carter Sevick MS, DoD Center for Deployment Health Research, San Diego, CA ABSTRACT Whether by design or by error there
B) Mean Function: This function returns the arithmetic mean (average) and ignores the missing value. E.G: Var=MEAN (var1, var2, var3 varn);
SAS-INTERVIEW QUESTIONS 1. What SAS statements would you code to read an external raw data file to a DATA step? Ans: Infile and Input statements are used to read external raw data file to a Data Step.
SAS Programming Tips, Tricks, and Techniques
SAS Programming Tips, Tricks, and Techniques A presentation by Kirk Paul Lafler Copyright 2001-2012 by Kirk Paul Lafler, Software Intelligence Corporation All rights reserved. SAS is the registered trademark
Cleaning Up Your Outlook Mailbox and Keeping It That Way ;-) Mailbox Cleanup. Quicklinks >>
Cleaning Up Your Outlook Mailbox and Keeping It That Way ;-) Whether you are reaching the limit of your mailbox storage quota or simply want to get rid of some of the clutter in your mailbox, knowing where
Table Lookups: From IF-THEN to Key-Indexing
Paper 158-26 Table Lookups: From IF-THEN to Key-Indexing Arthur L. Carpenter, California Occidental Consultants ABSTRACT One of the more commonly needed operations within SAS programming is to determine
Count the Dots Binary Numbers
Activity 1 Count the Dots Binary Numbers Summary Data in computers is stored and transmitted as a series of zeros and ones. How can we represent words and numbers using just these two symbols? Curriculum
Transferring vs. Transporting Between SAS Operating Environments Mimi Lou, Medical College of Georgia, Augusta, GA
CC13 Transferring vs. Transporting Between SAS Operating Environments Mimi Lou, Medical College of Georgia, Augusta, GA ABSTRACT Prior to SAS version 8, permanent SAS data sets cannot be moved directly
Using SAS/FSP Software for Ad hoc Reporting By Marc Schlessel SPS Software Services Inc.
Using SAS/FSP Software for Ad hoc Reporting By Marc Schlessel SPS Software Services Inc. Abstract This paper is geared towards mainframe SAS programmers who are looking for an easy solution of creating
Paper FF-014. Tips for Moving to SAS Enterprise Guide on Unix Patricia Hettinger, Consultant, Oak Brook, IL
Paper FF-014 Tips for Moving to SAS Enterprise Guide on Unix Patricia Hettinger, Consultant, Oak Brook, IL ABSTRACT Many companies are moving to SAS Enterprise Guide, often with just a Unix server. A surprising
CAs and Turing Machines. The Basis for Universal Computation
CAs and Turing Machines The Basis for Universal Computation What We Mean By Universal When we claim universal computation we mean that the CA is capable of calculating anything that could possibly be calculated*.
SAS Lesson 2: More Ways to Input Data
SAS Lesson 2: More Ways to Input Data In the previous lesson, the following statements were used to create a dataset. DATA oranges; INPUT state $ 1-10 early 12-14 late 16-18; DATALINES; Florida 130 90
Simple Rules to Remember When Working with Indexes Kirk Paul Lafler, Software Intelligence Corporation, Spring Valley, California
Simple Rules to Remember When Working with Indexes Kirk Paul Lafler, Software Intelligence Corporation, Spring Valley, California Abstract SAS users are always interested in learning techniques related
Paper 109-25 Merges and Joins Timothy J Harrington, Trilogy Consulting Corporation
Paper 109-25 Merges and Joins Timothy J Harrington, Trilogy Consulting Corporation Abstract This paper discusses methods of joining SAS data sets. The different methods and the reasons for choosing a particular
MS SQL Performance (Tuning) Best Practices:
MS SQL Performance (Tuning) Best Practices: 1. Don t share the SQL server hardware with other services If other workloads are running on the same server where SQL Server is running, memory and other hardware
Everything you wanted to know about MERGE but were afraid to ask
TS- 644 Janice Bloom Everything you wanted to know about MERGE but were afraid to ask So you have read the documentation in the SAS Language Reference for MERGE and it still does not make sense? Rest assured
Demonstrating a DATA Step with and without a RETAIN Statement
1 The RETAIN Statement Introduction 1 Demonstrating a DATA Step with and without a RETAIN Statement 1 Generating Sequential SUBJECT Numbers Using a Retained Variable 7 Using a SUM Statement to Create SUBJECT
In this chapter you will find information on the following subjects:
17 1. From XP to Vista Microsoft, the creator of Windows, has published various versions of the Windows operating system over the past two decades. Windows Vista is the latest version, the successor to
UTILITIES BACKUP. Figure 25-1 Backup & Reindex utilities on the Main Menu
25 UTILITIES PastPerfect provides a variety of utilities to help you manage your data. Two of the most important are accessed from the Main Menu Backup and Reindex. The other utilities are located within
Paper TU_09. Proc SQL Tips and Techniques - How to get the most out of your queries
Paper TU_09 Proc SQL Tips and Techniques - How to get the most out of your queries Kevin McGowan, Constella Group, Durham, NC Brian Spruell, Constella Group, Durham, NC Abstract: Proc SQL is a powerful
What you should know about: Windows 7. What s changed? Why does it matter to me? Do I have to upgrade? Tim Wakeling
What you should know about: Windows 7 What s changed? Why does it matter to me? Do I have to upgrade? Tim Wakeling Contents What s all the fuss about?...1 Different Editions...2 Features...4 Should you
Preserving Line Breaks When Exporting to Excel Nelson Lee, Genentech, South San Francisco, CA
PharmaSUG 2014 Paper CC07 Preserving Line Breaks When Exporting to Excel Nelson Lee, Genentech, South San Francisco, CA ABSTRACT Do you have imported data with line breaks and want to export the data to
PharmaSUG 2013 - Paper CC30
ABSTRACT PharmaSUG 2013 - Paper CC30 Useful Tips for Handling and Creating Special Characters in SAS Bob Hull, SynteractHCR, Inc., Carlsbad, CA Robert Howard, Veridical Solutions, Del Mar, CA This paper
OneDrive for Business User Guide
OneDrive for Business User Guide Contents About OneDrive for Business and Office 365... 2 Storing University Information in the Cloud... 2 Signing in... 2 The Office 365 Interface... 3 The OneDrive for
Big Data, Fast Processing Speeds Kevin McGowan SAS Solutions on Demand, Cary NC
Big Data, Fast Processing Speeds Kevin McGowan SAS Solutions on Demand, Cary NC ABSTRACT As data sets continue to grow, it is important for programs to be written very efficiently to make sure no time
Using Macros to Automate SAS Processing Kari Richardson, SAS Institute, Cary, NC Eric Rossland, SAS Institute, Dallas, TX
Paper 126-29 Using Macros to Automate SAS Processing Kari Richardson, SAS Institute, Cary, NC Eric Rossland, SAS Institute, Dallas, TX ABSTRACT This hands-on workshop shows how to use the SAS Macro Facility
Salary. Cumulative Frequency
HW01 Answering the Right Question with the Right PROC Carrie Mariner, Afton-Royal Training & Consulting, Richmond, VA ABSTRACT When your boss comes to you and says "I need this report by tomorrow!" do
Writing Data with Excel Libname Engine
Writing Data with Excel Libname Engine Nurefsan (Neffy) Davulcu Advanced Analytics Intern, TransUnion Canada Golden Horseshoe SAS User Group (GHSUG) Burlington, Ontario, Canada MAY 27, 2016 ODS All Functionality
Carry it Easy +Plus Bio. User Guide
Carry it Easy +Plus Bio User Guide User Manual Version 3.0 2004-2006 CoSoSys SRL Carry it Easy +Plus Bio User Manual Table of Contents Table of Contents...I 1. Introduction...1 2. System Requirements...2
From Unleashing Your Inner Leader. Full book available for purchase here.
From Unleashing Your Inner Leader. Full book available for purchase here. Contents Preface xiii About Me xv About the Book xvii Acknowledgments xix Chapter 1 You and Your Inner Leader 1 Part One of the
How to Benchmark Your Building. Instructions for Using ENERGY STAR Portfolio Manager and Southern California Gas Company s Web Services
How to Benchmark Your Building Instructions for Using ENERGY STAR Portfolio Manager and Southern California Gas Company s Web Services This document is a quick-start guide for entering your property into
LOBs were introduced back with DB2 V6, some 13 years ago. (V6 GA 25 June 1999) Prior to the introduction of LOBs, the max row size was 32K and the
First of all thanks to Frank Rhodes and Sandi Smith for providing the material, research and test case results. You have been working with LOBS for a while now, but V10 has added some new functionality.
SAS Views The Best of Both Worlds
Paper 026-2010 SAS Views The Best of Both Worlds As seasoned SAS programmers, we have written and reviewed many SAS programs in our careers. What I have noticed is that more often than not, people who
Integrity Constraints and Audit Trails Working Together Gary Franklin, SAS Institute Inc., Austin, TX Art Jensen, SAS Institute Inc.
Paper 8-25 Integrity Constraints and Audit Trails Working Together Gary Franklin, SAS Institute Inc., Austin, TX Art Jensen, SAS Institute Inc., Englewood, CO ABSTRACT New features in Version 7 and Version
UNIX Comes to the Rescue: A Comparison between UNIX SAS and PC SAS
UNIX Comes to the Rescue: A Comparison between UNIX SAS and PC SAS Chii-Dean Lin, San Diego State University, San Diego, CA Ming Ji, San Diego State University, San Diego, CA ABSTRACT Running SAS under
Managing very large EXCEL files using the XLS engine John H. Adams, Boehringer Ingelheim Pharmaceutical, Inc., Ridgefield, CT
Paper AD01 Managing very large EXCEL files using the XLS engine John H. Adams, Boehringer Ingelheim Pharmaceutical, Inc., Ridgefield, CT ABSTRACT The use of EXCEL spreadsheets is very common in SAS applications,
Amadeus SAS Specialists Prove Fusion iomemory a Superior Analysis Accelerator
WHITE PAPER Amadeus SAS Specialists Prove Fusion iomemory a Superior Analysis Accelerator 951 SanDisk Drive, Milpitas, CA 95035 www.sandisk.com SAS 9 Preferred Implementation Partner tests a single Fusion
Multiplication Rules! Tips to help your child learn their times tables
Multiplication Rules! Tips to help your child learn their times tables 1. Have fun! We want relaxed kids and plenty of giggles. 2. Go slowly and relax. 3. Do the preliminary review, all the preliminary
Fun with PROC SQL Darryl Putnam, CACI Inc., Stevensville MD
NESUG 2012 Fun with PROC SQL Darryl Putnam, CACI Inc., Stevensville MD ABSTRACT PROC SQL is a powerful yet still overlooked tool within our SAS arsenal. PROC SQL can create tables, sort and summarize data,
Customized Excel Output Using the Excel Libname Harry Droogendyk, Stratia Consulting Inc., Lynden, ON
Paper SIB-105 Customized Excel Output Using the Excel Libname Harry Droogendyk, Stratia Consulting Inc., Lynden, ON ABSTRACT The advent of the ODS ExcelXP tagset and its many features has afforded the
Data Presentation. Paper 126-27. Using SAS Macros to Create Automated Excel Reports Containing Tables, Charts and Graphs
Paper 126-27 Using SAS Macros to Create Automated Excel Reports Containing Tables, Charts and Graphs Tugluke Abdurazak Abt Associates Inc. 1110 Vermont Avenue N.W. Suite 610 Washington D.C. 20005-3522
Session 7 Fractions and Decimals
Key Terms in This Session Session 7 Fractions and Decimals Previously Introduced prime number rational numbers New in This Session period repeating decimal terminating decimal Introduction In this session,
Preparing your data for analysis using SAS. Landon Sego 24 April 2003 Department of Statistics UW-Madison
Preparing your data for analysis using SAS Landon Sego 24 April 2003 Department of Statistics UW-Madison Assumptions That you have used SAS at least a few times. It doesn t matter whether you run SAS in
SAS PROGRAM EFFICIENCY FOR BEGINNERS. Bruce Gilsen, Federal Reserve Board
SAS PROGRAM EFFICIENCY FOR BEGINNERS Bruce Gilsen, Federal Reserve Board INTRODUCTION This paper presents simple efficiency techniques that can benefit inexperienced SAS software users on all platforms.
Dup, Dedup, DUPOUT - New in PROC SORT Heidi Markovitz, Federal Reserve Board of Governors, Washington, DC
CC14 Dup, Dedup, DUPOUT - New in PROC SORT Heidi Markovitz, Federal Reserve Board of Governors, Washington, DC ABSTRACT This paper presents the new DUPOUT option of PROC SORT and discusses the art of identifying
New Tricks for an Old Tool: Using Custom Formats for Data Validation and Program Efficiency
New Tricks for an Old Tool: Using Custom Formats for Data Validation and Program Efficiency S. David Riba, JADE Tech, Inc., Clearwater, FL ABSTRACT PROC FORMAT is one of the old standards among SAS Procedures,
Here to help sort out problems with your legal service provider
How do we sort out problems? Our job is to look at complaints about service providers in a fair way and without taking sides. If we think the service complained about was of a reasonable standard, we will
Unit 4.3 - Storage Structures 1. Storage Structures. Unit 4.3
Storage Structures Unit 4.3 Unit 4.3 - Storage Structures 1 The Physical Store Storage Capacity Medium Transfer Rate Seek Time Main Memory 800 MB/s 500 MB Instant Hard Drive 10 MB/s 120 GB 10 ms CD-ROM
William E Benjamin Jr, Owl Computer Consultancy, LLC
So, You ve Got Data Enterprise Wide (SAS, ACCESS, EXCEL, MySQL, Oracle, and Others); Well, Let SAS Enterprise Guide Software Point-n-Click Your Way to Using It. William E Benjamin Jr, Owl Computer Consultancy,
Remote Support. User Guide 7.23
Remote Support User Guide 7.23 Copyright 1997 2011 Cisco and/or its affiliates. All rights reserved. WEBEX, CISCO, Cisco WebEx, the CISCO logo, and the Cisco WebEx logo are trademarks or registered trademarks
One problem > Multiple solutions; various ways of removing duplicates from dataset using SAS Jaya Dhillon, Louisiana State University
One problem > Multiple solutions; various ways of removing duplicates from dataset using SAS Jaya Dhillon, Louisiana State University ABSTRACT In real world, analysts seldom come across data which is in
Counting the Ways to Count in SAS. Imelda C. Go, South Carolina Department of Education, Columbia, SC
Paper CC 14 Counting the Ways to Count in SAS Imelda C. Go, South Carolina Department of Education, Columbia, SC ABSTRACT This paper first takes the reader through a progression of ways to count in SAS.
Summitsoft Corporation Font Management System Guide
Summitsoft Corporation Font Management System Guide This guide is distributed with software that includes an end user agreement, this guide, as well as the software described in it, is furnished under
Product Guide. Sawmill Analytics, Swindon SN4 9LZ UK [email protected] tel: +44 845 250 4470
Product Guide What is Sawmill Sawmill is a highly sophisticated and flexible analysis and reporting tool. It can read text log files from over 800 different sources and analyse their content. Once analyzed
Computer Maintenance Guide
Computer Maintenance Guide Do you get days where you feel like tearing your hair out, because your Pc will not operate in the manner which it did when you first bought it. Believe me you are not alone,
What You re Missing About Missing Values
Paper 1440-2014 What You re Missing About Missing Values Christopher J. Bost, MDRC, New York, NY ABSTRACT Do you know everything you need to know about missing values? Do you know how to assign a missing
How To Backup A Database In Navision
Making Database Backups in Microsoft Business Solutions Navision MAKING DATABASE BACKUPS IN MICROSOFT BUSINESS SOLUTIONS NAVISION DISCLAIMER This material is for informational purposes only. Microsoft
SAS Enterprise Guide A Quick Overview of Developing, Creating, and Successfully Delivering a Simple Project
Paper 156-29 SAS Enterprise Guide A Quick Overview of Developing, Creating, and Successfully Delivering a Simple Project Ajaz (A.J.) Farooqi, Walt Disney Parks and Resorts, Lake Buena Vista, FL ABSTRACT
SUGI 29 Coders' Corner
Paper 074-29 Tales from the Help Desk: Solutions for Simple SAS Mistakes Bruce Gilsen, Federal Reserve Board INTRODUCTION In 19 years as a SAS consultant at the Federal Reserve Board, I have seen SAS users
8 Simple Tips for E-Mail Management in Microsoft Outlook
8 Simple Tips for E-Mail Management in Microsoft Outlook The Definitive Guide for Lawyers, Accountants, Engineers, Architects, Programmers, Web Developers, Bankers, Entrepreneurs, Sales Executives. in
Managing Data Issues Identified During Programming
Paper CS04 Managing Data Issues Identified During Programming Shafi Chowdhury, Shafi Consultancy Limited, London, U.K. Aminul Islam, Shafi Consultancy Bangladesh, Sylhet, Bangladesh ABSTRACT Managing data
(Refer Slide Time: 2:03)
Control Engineering Prof. Madan Gopal Department of Electrical Engineering Indian Institute of Technology, Delhi Lecture - 11 Models of Industrial Control Devices and Systems (Contd.) Last time we were
SQL Server. SQL Server 100 Most Asked Questions: Best Practices guide to managing, mining, building and developing SQL Server databases
SQL Server SQL Server 100 Most Asked Questions: Best Practices guide to managing, mining, building and developing SQL Server databases SQL Server 100 Success Secrets Copyright 2008 Notice of rights All
Document Management Portal User Guide
Client Portal Document Management Portal User Guide Version 8.x TL22805 07/26/10 Copyright Information Text copyright 2001-2010 by Thomson Reuters/Tax & Accounting. All rights reserved. Video display images
Switching from PC SAS to SAS Enterprise Guide Zhengxin (Cindy) Yang, inventiv Health Clinical, Princeton, NJ
PharmaSUG 2014 PO10 Switching from PC SAS to SAS Enterprise Guide Zhengxin (Cindy) Yang, inventiv Health Clinical, Princeton, NJ ABSTRACT As more and more organizations adapt to the SAS Enterprise Guide,
PMOD Installation on Linux Systems
User's Guide PMOD Installation on Linux Systems Version 3.7 PMOD Technologies Linux Installation The installation for all types of PMOD systems starts with the software extraction from the installation
Document Services Customer Accounts Online
User Guide Document Services Customer Accounts Online Defense Logistics Agency Version 1, 1 May 2011 Page 1 Registration and Log In In order to begin using Document Services Customer Accounts Online, use
Integrated Accounting System for Mac OS X
Integrated Accounting System for Mac OS X Program version: 6.3 110401 2011 HansaWorld Ireland Limited, Dublin, Ireland Preface Standard Accounts is a powerful accounting system for Mac OS X. Text in square
S&G Audit Lock. Audit Trail Software Manual
S&G Audit Lock Audit Trail Software Manual The Sargent & Greenleaf Audit Lock is designed to provide a high level of security. One of the ways they accomplish this is by offering detailed audit trails.
OpenIMS 4.2. Document Management Server. User manual
OpenIMS 4.2 Document Management Server User manual OpenSesame ICT BV Index 1 INTRODUCTION...4 1.1 Client specifications...4 2 INTRODUCTION OPENIMS DMS...5 2.1 Login...5 2.2 Language choice...5 3 OPENIMS
KPN SMS mail. Send SMS as fast as e-mail!
KPN SMS mail Send SMS as fast as e-mail! Quick start Start using KPN SMS mail in 5 steps If you want to install and use KPN SMS mail quickly, without reading the user guide, follow the next five steps.
Post Processing Macro in Clinical Data Reporting Niraj J. Pandya
Post Processing Macro in Clinical Data Reporting Niraj J. Pandya ABSTRACT Post Processing is the last step of generating listings and analysis reports of clinical data reporting in pharmaceutical industry
User Guide. Laplink Software, Inc. Laplink DiskImage 7 Professional. User Guide. UG-DiskImagePro-EN-7 (REV. 5/2013)
1 Laplink DiskImage 7 Professional Laplink Software, Inc. Customer Service/Technical Support: Web: http://www.laplink.com/contact E-mail: [email protected] Laplink Software, Inc. 600 108th Ave.
ORACLE DATABASE 12C IN-MEMORY OPTION
Oracle Database 12c In-Memory Option 491 ORACLE DATABASE 12C IN-MEMORY OPTION c The Top Tier of a Multi-tiered Database Architecture There is this famous character, called Mr. Jourdain, in The Bourgeois
LevelOne MUS-1001. 1GB Smart Flash. User Manual V1.0.0-0610
LevelOne MUS-1001 1GB Smart Flash User Manual V1.0.0-0610 CONTENT CHAPTER 1 INTRODUCTION...4 1.1 About this Manual...4 1.2 Support Services...5 CHAPTER 2 PRODUCT OVERVIEW...6 2.1 Package Contents...6 2.2
