• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 390
  • Last Modified:

What is faster- INSERT INTO or stored procedure that insert info ?

Hello experts!

I have to insert one row in table with many records (and 2-4 indexes). I use this in real time system that do many other thinks and this insert MUST be do with minimal time.

What is faster  to execute one INSERT INTO with run time string that is pass to SQL server 2005    or    to write stored procedure that have parameters and it actually execute this INSERT INTO.
As I know stored procedure are precompiled in advance so they are faster. Is this is true when stored procedure insert record ? Can I see some speed comparison between stored procedure and INSERT INTO ?
1 Solution
regular statements are also precompiled, so as long as the query text is exactly the same (and you use prepared statement in order to pass parameters) , the query won't be recompiled
i don't know if anyone can provide a solid benchmark that compares the two
i suggest you just try both options and see for yourself
run the insert statement in a loop for 100k times
call the stored procedure in a loop for 100k times
see which one takes longer on the average case
dvplayltdAuthor Commented:
I pass regular statements using ADO 2.7 "connection.execite" and I am sure that INSERT INTO is not precompiled ever sql string is same.

I know that stored procedures are precompiled - so SELECT caluse are very benefit from it, because execite plan is  ready. Is INSERT INTO also has benefit ? In other words - when you have INSERT INTO does SQL server create execite plan ? If INSERT INTO also have execite plan - stored procedure will be some times faster.
there would not be much difference in performance. but it would be a lot faster if you concatenated all the query in the run time to execute a 1 time request to the server. performance issue will be raised if you created a loop that will connect to the database every time you want to insert. it is advisable to create a concatenated insert statement in a string after concatening all the insert statement then execute it to the db.

by the way if your going to concatenate indefinite length of string or long string you should use string builder instead of string.

another solution is using data adapter batch update.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now