Performantestes Datenbanksystem für Server

  • VB.NET (ASP)

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von thefiloe.

    Performantestes Datenbanksystem für Server

    Hallo,

    ich wollte fragen, was nach euren Erfahrungen/Meinungen das wohl performanteste Datenbanksystem für einen Server ist.
    Mal etwas weiter ausgeholt, ich habe eine asp.net Anwendung, bei der verschiedene Nutzer parallel auf eine Datenbank zugreifen.
    Ich dachte allerdings, ich muss wahrscheinlich etwas mehr tun, als nur bei dem Datenbanksystem einzustellen, dass die connection asynchron sein muss.

    Auf meinem Laptop braucht ein einfacher Tabelleneintrag mit 5 Integer-Werten mit öffnen & beenden der Verbindung ca 100 millisekunden.
    Gibt es da bereits performantere Lösungen? Da könnte ich drauf wetten ;)
    Wenn also 10 Leute etwas auf dem Server machen, was einen Wert auf die Datenbank schreibt, muss ich mir jetzt Sorgen machen wegen der Performance?

    Ich frage außerdem, weil ich bemerkt habe, dass wenn ich nicht 1, sondern 10.000x mehr Werte in die Datenbank schreibe, nur etwa 10x mehr Zeit benötigt wird!(Ohne das schließen der Verbindung!)
    Ich folgere bei "geringeren" Mengen an Befehlen daher, dass am meisten Zeit für das öffnen/schließen der Verbindung benötigt wird. Liege ich da richtig? Kann man das nicht optimieren?

    mfG
    Bei so geringen Anforderungen solltest du dir bei keiner Datenbank wirklich Sorgen machen müssen. Du hast recht. Der Verbindungsaufbau kostet recht viel Zeit. Aus meiner Erfahrung heraus ist das vor allem auch beim ersten Mal wo eine Verbindung aufgebaut wird der Fall. Ich schlussfolgere daher, dass es intern wahrscheinlich einen Cache oder etwas ähnliches gibt. Ich weiß nicht wie du auf die Datenbank zugreifst. Ich verwende meistens etwas LinqToSql basiertes. Hier habe ich vor allem auch die Erfahrung gemacht, dass Abfragen die das Erste mal laufen länger dauern als wenn sie schon öfters durchlaufen wurden. Hatte kürzlich ein Projekt wo in einer einzigen Abfrage eine ganze Statistik errechnet wurde. Die gesamte SQL Abfrage die am Ende raus ging war fast 150 Zeilen lang und recht komplex. Da hatte ich schon gemerkt, dass es beim Ersten mal etwas länger dauerte. Es handelte sich dabei ebenfalls um eine ASP.NET Anwendung und muss sagen, dass es das Erste mal bei fast 3-4 Sekunden liegt (wenn ich den IIS neu hoch fahre). Nachdem man die Seite jedoch ein paar mal aufgerufen hat und 10 Minuten darauf herumnavigiert ist, gehen die Abfragen innerhalb von Bruchteilen einer Sekunde über die Bühne.
    Würde mir da also nicht allzu viele Gedanken machen. Was mir gerade auch beim Anlegen von Datensätzen beim SQL Server schon öfters recht viel Performance gebracht hat, war das Arbeiten mit Transaktionen. Heißt nicht zu oft commiten. Außerdem wenn du LinqToSql verwenden solltest, würde ich versuchen möglichst alles was du brauchst in eine Abfrage zu verpacken. Wenn im Hintergrund zig Abfragen raus gehen so verzögert sich das alles doch recht stark.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Danke, die Antwort klingt doch schon mal vielversprechend :thumbup: .
    Also würdest du sagen, dass es wohl eher nicht notwendig ist, dass ich da jetzt über die Maße tätig wäre.
    Notfalls hätte ich halt gedacht, die Datenbankstatements über alle Sessions und User hinaus in einer art collection(of commands) zu sammeln, und diese dann regelmäßig auszuführen, wenn es normal halt garnicht mehr geht.
    Alles was ich wollte war ja Sicherheit, dass ich mir da keine Sorgen machen muss, wenn ich mich nicht allzu dumm anstelle :)
    Glaub mir. Ein z.B. SQL-Server ist für ganz andere Belastungen ausgelegt. Am meisten kannst du da bei deinem Code ausrichten. Ich weiß nicht welche Version von Visual Studio du hast. Wenn du Ultimate (oder auch Prof??) hast, dann kannst du mit Hilfe von IntelliTrace die Datenbankabfragen anschauen und so sehen wo noch eventuell etwas zu holen. Diverse Profiler können das auch anzeigen (z.B. Redgate Performance Profiler) oder es gibt sogar auch eigene Datenbankprofiler (wobei das bei dir sicherlich zu übertrieben ist).


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.