Hi,
I will respond here, but as @Reeza has stated this is a new topic. Let me first explain what Base SAS and Macro SAS are:
Base SAS is compiled code which operates on data to process and manipulate the data.
Macro SAS is a code generation tool, to help repeat typing of code.
The call execute has no impact whatsoever on operation time of the Base SAS code you have programmed or generated from code. Nor will it have any control over it. The reason being, well the code that feeds into the compiler - that which actually does something to the data, is already fully expanded by the pre-processor (the macro compiler if you will), and none of that remains, so cannot know how long a step takes to work.
Now we know what the two let me ask you the question I asked a couple of times before in this post, and that is why are you not using Base SAS programming to do you processing, what "need" is there for code generation and macro processing? If you write your Base SAS code efficiently - i.e. using by groups and such like - this reduces the number of load/close for each of the files. It will make your code far more readable (and if you have ever had to pick up someones else code you will know what I am talking about), far more efficient, and far more maintainable. In 99% of the time cases Base SAS can do what you want, though it may require sideways thinking e.g. restructuring data.
Onto the question, this is down to what is happening in your macro, you haven't posted it, so I have no idea. You can't conditionally stop a datastep running based on resource use (at least easily), it is one step which runs, then the next one etc. Optimise your code - see the paragraph above here - write efficient Base SAS code. Once that is running efficiently, then look at seeing if you can reduce the code somewhat with Macro. Don't just write macro programs to cover up the lack of Base SAS programming.
Without further example I can't say much else.
... View more