Base de données transactionnelle utilisée pour réserver des choses ...
Notre fournisseur a été invité à remplacer #temptables par @tablevariables (en raison de verrous de compilation importants), mais à la place, il a été remplacé par une table réelle qui ajoute SPID en tant que colonne pour garantir que la procédure stockée n'agit que sur les lignes applicables.
Voyez-vous un risque dans cette méthode de fonctionnement? Avant que toutes les transactions ne soient isolées au sein de leur propre transaction ... Je craignais que nous finissions par verrouiller cette table un tas, mais leur opinion est que SQL utilise le verrouillage au niveau des lignes et cela ne créera pas plus de verrous.
Version 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)