Транзакционная база данных, используемая для бронирования вещей ...
Нашего поставщика попросили заменить #temptables на @tablevariables (из-за сильных блокировок компиляции), но вместо этого они заменили фактическую таблицу, которая добавляет SPID в качестве столбца, чтобы гарантировать, что хранимая процедура действует только на соответствующие строки.
Видите ли вы какой-либо риск в этом методе работы? До того, как все транзакции были изолированы внутри их собственной транзакции ... Я беспокоился, что мы можем блокировать эту таблицу, но их мнение таково, что SQL использует блокировку на уровне строк, и это не создаст больше блокировок.
Версия SQL Server: 2016 Enterprise - 13.0.5216.0
CREATE TABLE dbo.qryTransactions (
ID int IDENTITY (0,1) NOT NULL CONSTRAINT pk_qryTransactions PRIMARY KEY CLUSTERED,
spid int NOT NULL,
OrderID int,
ItemID int,
TimeTransactionStart datetime,
TimeTransactionEnd datetime,
...other fields
)
CREATE INDEX idx_qryTransactions_spidID ON qryTransactions (spid, ID) INCLUDE (ItemID, OrderID, TimeTransactionStart, TimeTransactionEnd)