Ich habe eine Funktion, mit der ein Benutzer alle hochgeladenen Dateien anzeigen kann. Um dies zu erreichen, füge ich einen Datensatz in die Datenbank ein und lade dann eine Datei in AWS S3 hoch. Ich verwende die ID aus dem Datensatz für den Dateinamen. Wenn die ID beispielsweise 53 lautet, lautet der Dateiname 53.pdf
. Sowohl das Einfügen des Datensatzes als auch das Hochladen der Datei erfolgt in einem TransactionScope. Ich bin besorgt, dass die Datenbank während dieser langen Operation gesperrt wird. Gibt es eine Möglichkeit zu verhindern, dass die Datenbank gesperrt wird?Datenbanksperren beim Hochladen einer Datei in einer Transaktion verhindern
Antwort
Ich bin besorgt, dass die Datenbank während dieser langen Operation gesperrt wird. Gibt es eine Möglichkeit zu verhindern, dass die Datenbank gesperrt wird?
Sie brauchen sich nicht um Datenbank Sorge blockiert werden, die nur Transaktionen, die eine exklusive Sperren auf Datenbank benötigen, sind Alter Datenbankanweisungen, diese exklusive Sperren erfordern und möglicherweise die gesamte Datenbank sperren können.
Sie müssen sich keine Sorgen über Objektebene Transaktionen Datenbank blockiert
unten Probe Sperren Screenshot genommen, wenn ich zwei Einsätze liefen Aussagen in parallel..As können Sie für Insert sehen, SQLServer erwirbt (IX-Sperre) auf Objekt, das besagt "ich werde etwas exklusiv auf Ebene unter Tabelle sperren ..."
Also in diesem Fall, wenn Sie eine andere Transaktion ausführen möchten, die ID aus der gleichen Tabelle auswählen und einfügen muss In derselben Tabelle wird Select gesperrt (auf normalem SQL Server, auf dem Standard Isolation lev ausgeführt wird) el) .. Aber nicht einfügen ...
Aber zu, wird standardmäßig auf RCSI die in einfachen Worten bedeutet `Lese Sitzungen werden nicht 'blockiert werden ..
ich bin nicht sicher, ob dies der Fall mit SQLServer in AWS als auch ?? ist .. Sie diese unten Abfrage, indem Sie überprüfen (überprüfen Sie die Isolationsstufe ab Spalte)
select * from sys.databases
Blockiert es die Tabelle für die Dauer der Transaktion? – Luke101
Nein, die Tabelle wurde für die Dauer einer Transaktion gesperrt, wie die, die Sie haben – TheGameiswar
Großartig, danke Mann – Luke101
- 1. Fehler beim Postback beim Hochladen einer Datei
- 2. Fortschrittsbalken beim Hochladen einer Datei in Dropbox
- 3. dojo.io.iframe Fehler beim Hochladen einer Datei
- 4. Verschlüsseln des Inhalts einer Datei beim Hochladen
- 5. Winkelmesser erkennt '\' beim Hochladen einer Datei nicht
- 6. Hochladen einer Datei api
- 7. Hochladen einer Datei in Selenium
- 8. Undefinierte Variable beim Hochladen einer Datei in PHP
- 9. Carrierwave - "Hochladen" einer Datei aus einer Zeichenfolge
- 10. Hochladen einer Datei html/php
- 11. PHP: Hochladen einer .ogz-Datei
- 12. Erlaubnis verweigert Fehler mit Django beim Hochladen einer Datei
- 13. Opera Themes Fehler beim Hochladen einer Zip-Datei
- 14. Beim Hochladen einer Datei gibt is_uploaded_file false zurück?
- 15. Problem beim Hochladen einer Datei über Ajax mit PHP
- 16. Es zeigt immer einen Fehler beim Hochladen einer Datei an
- 17. Timeout-Fehler vom Einhorn beim Hochladen einer Datei
- 18. Probleme beim Hochladen einer Datei und Parsing mit AngularJS
- 19. Beim Hochladen einer Datei kann keine vollständige Adresse abgerufen werden
- 20. Datei hochladen in einer anderen Domäne
- 21. Hochladen einer Datei in einem Popup-Fenster
- 22. Das Hochladen einer leeren Datei führt automatisch zu einer NPE
- 23. zwei Verfahren in einer Transaktion
- 24. Hochladen einer Textdatei in ASP.NET
- 25. XMLHttpRequest zum Hochladen einer Datei mit Parametern
- 26. "Hochladen" einer Datei von django Shell
- 27. MVC Hochladen einer Datei mit UserID
- 28. Hochladen einer Datei von AVCapture mit AFNetworking
- 29. Visual Basic: Hochladen einer Datei mit HTTP
- 30. BOX API Hochladen einer Datei Java
Standardmäßig verwendet SQL Server ** Sperren auf Zeilenebene ** - keine Sperren für Tabellen oder Datenbanken. –