Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all articles
Browse latest Browse all 7251

Возможен ли вариант, при котором один момент времени несколько потоков изменяют данные?

$
0
0
Добрый день.

Есть WEB сервер, модуль которого подключается к базе и вносит изменения в таблицу-счётчик. На сколько я понимаю в один момент времени на web сервер может придти "куча" запросов, и в один миг идут множество запросов в базу.

существует хранимая процедура, например скрипт самый простой:
CREATE PROCEDURE [Test]
AS
  UPDATE [Test_Table]
  SET
     [Inc_Fild]  = [Inc_Fild] - 1
GO


К примеру [Inc_Fild] = 100, в один момент времени пришло 100 запросов на web сервер, модуль которого которого стал вызывать хранимку в ста разных потоках. Если не делать BEGIN TRANSACTION, при завершении выполнения 100 запросов [Inc_Fild] будет равен "0", или же нет? Я к чему, может ли быть ситуация когда, первый поток вызова процедуры вносит изменения в БД а второй читает как бы "грязные" данные, изменения которых ещё не произошли? Или же MSSQL не позволит этого сделать, и выполнения множества потоков встанет в очередь и будет выполнение одно за другим?

Viewing all articles
Browse latest Browse all 7251

Trending Articles