Transaktionsdatenbank für die Buchung von Dingen ...
Unser Anbieter wurde gebeten, #temptables durch @tablevariables zu ersetzen (aufgrund schwerer Kompilierungssperren). Stattdessen wurde er durch eine tatsächliche Tabelle ersetzt, die SPID als Spalte hinzufügt, um sicherzustellen, dass die gespeicherte Prozedur nur auf die entsprechenden Zeilen wirkt.
Sehen Sie ein Risiko bei dieser Arbeitsweise? Bevor alle Transaktionen innerhalb ihrer eigenen Transaktion isoliert wurden ... Ich befürchtete, dass wir diese Tabelle möglicherweise ein paar Mal sperren, aber sie sind der Meinung, dass SQL Sperren auf Zeilenebene verwendet und dadurch keine weiteren Sperren erstellt werden.
SQL Server-Version: 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)