CLR Stored Procedures

Posted by Paul Hatcherian on Stack Overflow See other posts from Stack Overflow or by Paul Hatcherian
Published on 2010-03-22T15:07:12Z Indexed on 2010/03/22 15:11 UTC
Read the original article Hit count: 415

In an ASP.NET application, I have a small number of fairly complex, frequently used operations to execute against a database. In these operations, one or more of several tables needs updates or inserts based a logical evaluation of both input parameters and values of certain tables. I've maintained a separation of logic and data access, so the operation currently looks like this:

  1. Request received from client
  2. Business layer invokes data layer to retrieve data from database
  3. Business layer processes result and determines which operation to execute
  4. Business layer invokes appropriate data operation
  5. Response sent to client

As you can see, the client is kept waiting while two separate requests are made to the database. In searching for a solution to this, I've found CLR Stored Procedures, but I'm not sure if I have the right idea about what they are useful for.

I have written a replacement for the code above which especially places steps 2-4 in a CLR SP. My understanding is that the SP will be executed locally by SQL Server and result in only one call being made to the server. My initial benchmark tests show this is actually orders of magnitude slower than my original code, but I attribute that recompilation of the code I have not worked out yet and/or some flaw in my environment.

My question is basically, is this the intended use of CLR SPs or am I missing something?

I realize this is a bit of a compromise structurally, so if there's a better way to do it I'd love to hear it.

© Stack Overflow or respective owner

Related posts about clrstoredprocedure

Related posts about sql-server