05-08-2013 10:42 AM
Hello. While in school I "learned" to use SAS from a base sas version that ran on a local machine. Furthermore, at my work we use a base sas system that runs on a local machine.
In order for me to interact with much of our data storage I have used odbc connections to sql server to transfer data from my local machine to our Sql Server databases. I am curious as to whether or not SAS has a way to run jobs on a server instead of a local machine, as a means to increase efficiency by reducing the network bottlenecks. (I'm sure that SAS does have this, I have just never used it before and don't know where to start).
Can anyone suggest a good starting paper for a brand new user of SAS on server applications? I have looked online but feel I am missing something as I cannot find any simple papers that explain how a sas server environment works.
05-08-2013 11:17 AM
So you have access to SAS running on a server now? Are you planning to use Enterprise Guide to run code on the server?
I'm just slightly confused because there are (at least) two different paths for avoiding network bottlenecks.
You can run SAS locally. And when you run a SQL query against a remote database, you can do an explicit pass-through query which will have the query run on the distant SQL database, and return just the results back to you. For that, you would want to look for papers on connecting to SQL server etc from SAS. So the SAS job runs locally, and the query runs on the SQL server database.
But it sounds like you may have a server that is running SAS, and that server is also closer to your SQL server database than you are? In that case, then yes, I would think running the SAS job on the SAS server might help. And I would look for papers etc about Enterprise Guide, or even old fashioned papers about how to log into to a server directly and submit SAS code.
I think it would help if you told us more about your environment:
Do you have a SAS server?
Do you have Enterprise Guide?
05-08-2013 11:35 AM
Hi. Thanks for the response. I will give answers to your statement the best I can.
So I am running sas on a local machine, the server says "local". What you mention in your third pararaph (using the explicit pass thorugh query) is actually what I do in a large portion of my code. However, my local machine is in in the mid-west and the sql server is way over on the east coast. So running a query that takes 5 seconds in sql server turns into 3-5 minutes because of the transfer of large portions of data (lots of large comment data) over our network. (this is how I understand it, but again I have never worked with or even heard of servers until about a year ago, and am still very new to this subject).
In order to get around this problem, I had a VM set up in the same location as our servers, and then I had base sas installed on the VM. Now when I run a job to return results to sas from the sql server database it runs a LOT quicker, and it seemed to fix this problem.
However I have heard that you can install SAS on a server (which I do not have), and I would think that programs run from this would theoritically be faster since a server has greater resources than a local machine.
Is the following statement correct? "Sas on a server is just a copy of sas installed on whatever computer the server is hosted on", and then there is a way to log into the server and run jobs from the sas on it? If so, how does one do this? I guess a high level paper on how servers work, and how sas works on a server compared to sas installed on a local machine would help a lot, I just cannot find a paper that goes over this at a very beginning level
I do not have a sas server (it is just sas stalled on a local machine), however I have a VM that has SAS installed on it that I often schedule jobs from using bat files.
I am running windows Xp.
I do not have enterprise guide.
Please let me know if any other answers might be helpful, and thanks for your time!
05-08-2013 12:56 PM
Good followup info.
Your description of running SAS on a VM set up near your SQL server makes sense, and is probably the best you can do without convincing folks to license a server version of SAS.
Server SAS is not just PC SAS installed on a server. Server SAS does a lot more. It allows multiple people to connect and run jobs at the same time, there is security via roles/users defined in metadata, there is blah blah.
The nice thing about SAS on a server is that as an end user (i.e. programmer), it can feel very similary to PC SAS. So the learning curve for a programmer isn't much. But it's a different kind of license for company to buy, and requires a level of server administration/support, etc. So it's a strategic decision for a company to invest in.
If interested in learning more about what it is like to have SAS running on a server, I would suggest you search lexjansen.com for papers. e.g.:
Or you could probably just call SAS and say "I'm a PC SAS user, trying to talk my boss into buying an enterprise server license, where should I go for more information on that possibility." I'm sure they'd be happy to help. : )