Ich habe eine große Enterprise-Web-Anwendung, die beginnt, stark genutzt werden. Kürzlich habe ich festgestellt, dass wir viele Datenbankaufrufe für Dinge wie Benutzerberechtigungen, Zugriff, allgemeine Teile von Profilinformationen machen.Große Anwendung - Umgang mit Datenzugriff
Von dem, was ich auf Azure sehen kann, betrachten wir durchschnittlich 50.000 db Abfragen pro Stunde.
Wir verwenden Linq zur Abfrage über das DevExpress XPO ORM. Einige davon sind Joins, aber die meisten sind einfache 1 Tabellenabfragen.
Ständig schlägt die Datenbank den besten Weg, um auf diese Art von Informationen zuzugreifen? Gibt es Möglichkeiten für uns, die Datenbankarbeit zu entlasten, da sich einige dieser Informationen niemals ändern werden?
Vielen Dank im Voraus.
reduzieren Ihre Frage ist weit zu breit und unspezifisch. Wir können Ihre Einstellungen nicht kennen und können daher keine Verbesserungen vorschlagen. Selbst wenn Sie diese Frage gestellt hätten, wäre diese Frage zu weit gefasst, weil es Dutzende Optimierungsmöglichkeiten gibt. Außerdem könnte es relevant sein, was Sie als "stark genutzt" und "viele db-Aufrufe" bezeichnen. Insbesondere ist es nicht Linq * oder * gespeicherte Prozedur, es könnte auch eine Ergänzung sein. Weder das eine noch das andere macht einen Unterschied, sie hängen vollständig davon ab, wie * du * sie benutzt. – HimBromBeere
Danke Kumpel, sorry die Frage war zu vage. Ich habe es neu formuliert, hoffentlich ist es klarer. – bExplosion
50K Abfragen pro Stunde ist nicht groß. Die Standardanleitung gilt. Gehen Sie nicht davon aus, dass die Datenbank langsam ist, sondern immer Ihr Code. Verwenden Sie geeignete Schemas und Indizes. Lade keine Sachen, die du nicht willst. Verwenden Sie das ORM nicht für Berichte. Verwenden Sie optimistische Parallelität. Verwenden Sie keine Transaktionen, weil jemand die Bedeutung von "Transaktion pro Anfrage" falsch verstanden hat. –