効率性は、理解しにくい問題です。効率性を定量化することは難しく、定義することはさらに困難です。あるアプリケーションに対して効果があることが、別のアプリケーションに対して効果があるとは限らず、あるホスト環境で有効なことが、別のホスト環境でも有効とは限りません。ただし、一般的に留意しておくべきことはあります。
通常、効率性の問題は、CPUサイクル、経過時間、入出力回数、メモリ使用量、ディスク使用量などの観点から議論されます。このセクションでは、これらの項目のベンチマークは、すべての変数に関連するため提供されません。一度しか実行されないプログラムは、何度も実行されるプログラムとは別の調整を必要とします。メインフレーム上で実行されるアプリケーションには、デスクトップPC上で開発されるアプリケーションとは異なるハードウェアパラメータがあります。使用している環境の視点から効率性を維持する必要があります。
節約したいリソースの種類に応じて、効率性を維持するためのさまざまな方法があります。たとえば、入出力回数よりもCPUサイクルの方が重要であったり、メモリは十分にあるがディスク容量が不足しているなどの状況があります。プログラムの調整方法を決める前に、このような状況を調べておくことをお勧めします。
SASマクロ機能が最も影響を与える効率性の領域は、人間の作業効率、つまりプログラムの開発と保守の両方に必要な作業時間です。自動呼び出しマクロは、その自動呼び出し機能によってコードを再利用できるため、この領域では特に重要になります。スクを実行するマクロを一度開発したら、それを保存して、次で使用できます。
再利用可能で即座に呼び出すことのできるマクロのライブラリは、すべてのアプリケーション開発チームに恩恵をもたらします。
コンパイル済みマクロ機能(
マクロの保存および再利用で説明されています)を使用すると、さまざまなSASジョブやSASセッションの実行中にコンパイル済みマクロにアクセスできるため、実行時間が減る可能性があります。ただし、この機能は、プロダクションアプリケーションに対してのみ効率的なツールであり、開発中のアプリケーションに対しては効率的ではありません。そのため、選択する効率化手法は、使用するハードウェアや担当者の状況によって変わるだけでなく、アプリケーション開発プロセスの到達段階によっても変わります。
マクロコードをSASアプリケーションに組み込んだからといって、自動的にアプリケーションが効率的になるわけではないということも、覚えておく必要があります。SASアプリケーションを設計する際は、基本的なSASコードを作成することに集中します。それらのコードは、マクロを使用することでさらに効率化されます。効率的なSASコードについては、SAS Programming Tips:A Guide to Efficient SAS Processingなど、多くの情報源があります。