开发者

Using TSQL for the first time some basic instructions

I am writing an app that will use many tables and i have been told that using stored procs in the app. is not the way to go, that it is too slow. It has been suggested i use TSQL. I hav开发者_如何学编程e only used stored procs till now. in what way is using TSQL different, how can I get up to speed. IN fact, is this the way to go for faster data access or is there other methods?


TSQL is Microsoft and Sybase SQL dialect, so your stored procedures are written with TSQL if you use SQLServer.
In the most cases, properly written stored procedures overperform adhoc queries. On the other hand, coding procedures requires more skills and debugging is quite a tedious process. It's really hard to give advice without seeing your procedures, but there are some common things that slow down SPs.

Execution plan is generated upon the first run, but sometimes the optimal plan depends on input parameters. See here for more details.

Another thing that prevents generating optimal plan is using conditions in SP body. For example,

IF (something)
BEGIN
  SELECT ... FROM table1 
  INNER JOIN table2 ...
  .....
END
ELSE 
BEGIN
   SELECT ... FROM table2 
  INNER JOIN table3 ...
  .....
END

should be refactored to

IF (something)
 EXEC proc1; // create a new SP and move code from IF there
ELSE
 EXEC proc2; // create a new SP and move code from ELSE there


The traditional argument for using SPs was always that they're compiled so they run faster. That hasn't been true for many years but nor is it true, in general, that SPs run slower.

If the reference is to development time rather than runtime then there may be some truth to this but, considering your skills, it may be that learning a new approach would slow you down more than using SPs.

If your system uses Object-Relational Mapping (ORM) then SPs will probably get in your way but then you wouldn't really be using T-SQL either - it'll be done for you.


Stored proc's are written with T-SQL, so it's a bit odd that someone would make such a statement.

Daniel is right, ORM is a good option. If you're doing any data intensive operations (such as parsing content), I'd look at the database first and foremost. You might want to do some reading on SP as speed isn't everything... there are other benefits. This was one hit from Google, but you can do more research yourself:

http://msdn.microsoft.com/en-us/library/ms973918.aspx

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜