用于预订事物的交易数据库...
我们的供应商被要求用@tablevariables替换#temptables(由于繁重的编译锁),但他们替换为一个实际表,该表将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)