Base de datos transaccional utilizada para reservar cosas ...
Se le pidió a nuestro proveedor que reemplazara #temptables por @tablevariables (debido a los bloqueos de compilación pesados), pero en su lugar lo reemplazaron con una tabla real que agrega SPID como una columna para garantizar que el procedimiento almacenado solo actúe en las filas correspondientes.
¿Ves algún riesgo en este método de operación? Antes de que todas las transacciones se aislaran dentro de su propia transacción ... Me preocupaba que pudiéramos terminar bloqueando esta tabla un montón, pero su opinión es que SQL usa el bloqueo a nivel de fila y esto no creará más bloqueos.
Versión de 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)