Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What happens when multiple simultaneous update requests received for a SQL table?

I have a table in SQL server database in which I am recording the latest activity time of users. Can somebody please confirm me that SQL server will automatically handle the scenario when multiple update requests received simultaneously for different users. I am expecting 25-50 concurrent update request on this table but each request is responsible for updating different rows in the table. Do i need something extra like connection pooling etc..?

like image 749
binu Avatar asked Oct 26 '12 12:10

binu


1 Answers

Yes, Sql Server will handle this scenario.

It is a SGDB and it expects scenarios like this one.

When you insert/update/delete a row in Sql, sql will lock the table/row/page to garantee that you will be able to do what you want. This lock will be released when you are done inserting/updating/deleting the row.

Check this Link

And introduction-to-locking-in-sql-server

But there are a few thing you should do:

1 - Make sure you will do whatener you want fast. Because of the lock issue, if you stay connected for too long other requests to the same table may be locked until you are done and this can lead to a timeout.

2 - Always use a transaction.

3 - Make sure to adjust the fill factor of your indexes. Check Fill Factor on MSDN.

4 - Adjust the Isolation level according to what you want.

5 - Get rid of unused indexes to speed up your insert/update.

Connection pooling are not very related to your question. Connection pooling is a technique that avoid the extra overhead of creating new connections to the Database every time you send a request. In C# and other languages that uses ADO this is automatically done. Check this out: SQL Server Connection Pooling.

Other links that may be usefull:

best-practices-for-inserting-updating-large-amount-of-data-in-sql-2008

Speed Up Insert Performance

like image 161
Rafael Colucci Avatar answered Sep 20 '22 13:09

Rafael Colucci