December 5, 2017 at 8:22 pm
Hi All,
I was just wondering what the advantages are of separating Stored Procs into their own database. We currently have one database that has all the tables and views and another that has only the Stored Procs. Is there a benefit.
Thanks
Kris
Kris
December 5, 2017 at 8:43 pm
The following are the benefits of using stored procedures in SQL Server rather than application code stored locally on client computers include:
 ·         They allow modular programming.
 ·         They allow faster execution.
 ·         They can reduce network traffic.
 ·         They can be used as a security mechanism.
 You can create a stored procedure once, store it in the database, and call it any number of times in your program. Someone who specializes in database programming may create stored procedures; this allows the application developer to concentrate on the code instead of SQL. You can modify stored procedures independently of the program source code—the application doesn't have to be recompiled when/if the SQL is altered. 
The following is a list of some of what you can do with stored procedures and reasons for using them.
 ·         Encapsulation of Queries— so that you don’t have to worry 
 where they were saved, and you could execute them from anywhere on the
 network. 
 ·         Parameterized Queries—These stored procedures accepted
 one or two parameters and returned a subset of the information in the tables
 in which the user was interested. This enabled the users to return only those
 results that were important to them.
 ·         Encapsulation of Data Modification Statements— Another great use of
 stored procedures is to encapsulate data modification statements. When you
 type data modification statements into a query window and execute them,
 there is a possibility that you will mistype something and cause severe
 problems in the database. If you encapsulate the data modification
 statements into a stored procedure that has been adequately tested, you are
 able to better control the statement and limit the amount of damage that can
 be done in the statement.
 ·         Maintainability of Application Logic— One very widespread use of stored
 procedures is to use them as a container for application logic. This way, you
 can maintain all your company's business rules and logic in a single location,
 which makes them extremely easy to maintain. If a business rule changes, all
 you have to do is change the code in the stored procedure, and all users
 would have the new code.
 ·         Standardization — If you roll all the data access, data modification, and
 business logic statements into stored procedures, you are virtually
 guaranteed that all access to your database will be standardized. That means
 if a user accesses a particular table, you know exactly what he is doing and
 how he is doing it.
 ·         Ease of Troubleshooting— This point closely follows the previous point. If
 you standardize all your database access through a common set of stored
 procedures, troubleshooting is much easier. This ease is because you have
 only one place to look to find the problems and, when the problem is fixed,
 one place to roll the changes to.
 ·         Security— One of the best, but least implemented, uses for stored
 procedures is as a security measure. If you create a stored procedure that
 accesses a table, you can revoke access to that table; the only way your
 users can access that table is through the stored procedure you've created.
 This is an extremely powerful method for locking down the server and
 keeping users from accessing information they aren't supposed to.
 ·         Automation of Administration Tasks —  Like system stored procedures,
 the core set of procedures installed with SQL Server, these procedures are
 used to perform low-level system functions and to return information about
 the server and the objects on the server. 
December 5, 2017 at 9:32 pm
It's not what the benefits of Stored procs are but why you would create a completely separate them from the database that they are actually calling. ie DB1 has all the tables and views and DB2 only has the stored procs that call the data from DB1.
Kris
December 6, 2017 at 1:27 am
Kris-155042 - Tuesday, December 5, 2017 9:32 PMIt's not what the benefits of Stored procs are but why you would create a completely separate them from the database that they are actually calling. ie DB1 has all the tables and views and DB2 only has the stored procs that call the data from DB1.
The only benefit I can think of and its also a con, is cross database ownership chaining, get it right it works a charm, get it wrong its a right PITA, proper security rights to the procs via roles is probably a better option to go down and potentially save yourself a lot of pain.
Apart from that it adds another database to maintain, restore, DR, HA etc etc, is it worth the additional administration effort? What is the business logic in doing this?
December 6, 2017 at 1:46 am
Hi Anthony,
I totally agree with you I just wanted make I wasn't missing something. I've just started a new job and this how it's set up. When I asked the business why, the answer is they don't know.
Kris
Viewing 5 posts - 1 through 5 (of 5 total)
You must be logged in to reply to this topic. Login to reply