Warum funktioniert die Azure-Datenbank besser mit Transaktionen?

8

Wir haben uns entschieden, einen Micro-Orm gegen eine Azure-Datenbank zu verwenden. Da unser Unternehmen nur "Einfügungen" und "Auswählen" benötigt, haben wir uns entschieden, alle mit Code verwalteten SqlTransaction (keine Nebenläufigkeitsprobleme bei Daten) zu unterdrücken.

Dann haben wir festgestellt, dass unsere Instanz der Azure-Datenbank sehr langsam reagiert hat. Das Ereignis " rpc abgeschlossen " ist in Verzögerungen aufgetreten, die das Hundertfache der Zeit betragen, die für die Ausführung einer einfachen SQL-Anweisung benötigt wird.

Als nächstes haben wir unseren Code mit EF6 verglichen und wir haben gesehen, dass der Server sehr schnell reagiert hat. Da EF6 eine integrierte Transaktion implementiert, haben wir beschlossen,% code% (ReadCommited) auf dem Mikro-Orm wiederherzustellen und wir haben festgestellt, dass alles in Ordnung war.

Benötigt Azure Database eine explizite SqlTransaction (verwaltet durch Code)? Wie beeinflusst SqlTransaction die Leistung von Azure Database? Warum wurde es so umgesetzt?

EDIT: Ich werde etwas genauere Informationen über die Art und Weise, wie wir Spuren gesammelt haben, veröffentlichen. Es scheint, dass unsere Azure-Ereignisprotokolle manchmal in Nanosekunden, manchmal in Millisekunden ausgedrückt werden. Scheint so komisch.

    
Rénald 05.02.2016, 18:51
quelle

1 Antwort

1

Wenn ich verstehe, was Sie richtig fragen, führt das Stapeln mehrerer SQL-Abfragen in einer Transaktion zu besseren Ergebnissen auf jedem DBS. Commit nach jedem Einfügen / Update / Löschen hat einen großen Aufwand auf einem DBS, das nicht dafür ausgelegt ist (wie MyISAM auf MySQL).

Es kann sogar zu schlechtem Flushing auf Festplatte und zu Thrashing führen, wenn Sie zu viel tun. Ich hatte einmal einen Programmierer, der jede Minute Tausende von Einträgen zu einem meiner DBs machte, jeder wie seine eigenen Transaktionen, und es brachte den Server zum Stillstand.

InnoDB, eines der zwei populärsten Datenbankformate für MySQL, kann nur 20-30 Transaktionen pro Sekunde ausführen (oder vielleicht waren es 2-3 ... es ist schon lange her), da jedes auf die Festplatte umgespült wird das Ende der ACID-Konformität.

    
Dakusan 13.02.2016, 08:31
quelle