Da ist etwas, das mich über meine Anwendung beunruhigt. Ich habe eine SQL-Abfrage, die eine Reihe von Einfügungen in die Datenbank über verschiedene Tabellen ausführt. Ich habe getimt, wie lange es dauert, bis der Vorgang abgeschlossen ist, es dauert etwa 1,5 Sekunden. An dieser Stelle bin ich noch nicht einmal mit der Entwicklung der Abfrage fertig, ich habe noch mehr Einfügungen, um dies zu programmieren. Ich erwarte also, dass dies noch länger dauert, vielleicht bis zu 3 Sekunden.Ist meine SQL-Transaktion zu lang?
Jetzt ist es wichtig, dass alle diese Daten konsistent sind und entweder vollständig oder gar nicht fertig sind. Also was ich mich wundere ist, ist es in Ordnung, dass eine Transaktion so lange dauert. Blockiert es nicht die Tabelle, also wählt, fügt ein, aktualisiert, etc ... kann nicht ausgeführt werden, bis die Transaktion beendet ist? Meine Sorge ist, wenn diese Abfrage häufig ausgeführt wird, könnte es die gesamte Anwendung sperren, so dass bestimmte Teile davon entweder unglaublich langsam oder unbrauchbar werden. Mit einer geringen Benutzerbasis bezweifle ich, dass dies ein Problem wäre, aber wenn meine Anwendung etwas an Fahrt gewinnen sollte, könnte diese Abfrage möglicherweise eine Menge sein.
Sollte ich darüber besorgt sein oder fehlt mir etwas, wo die Datenbank nicht so handeln wird, wie ich denke. Ich verwende eine SQL Server 2014-Datenbank.
Beachten Sie, dass ich dies mit dem StopWatch-C# -Objekt unmittelbar vor dem Start der Transaktion zeitlich festgelegt habe, und stoppe es sofort, nachdem die Änderungen festgeschrieben wurden. Es ist also so genau wie möglich.