Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Cache Leerung bei Neustart verhindern

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von gerpara, 12 August 2013.

  1. gerpara

    gerpara Benutzer

    Hallo zusammen,

    es handelt sich bei mir um eine relativ kleine Datenbank (<200 MB, MSSQL 2005) welche immer nur von einem User (Monteursanwendung im Feld mit lokaler Datenbank auf Notebook) verwendet wird.

    Dort ist nun aufgefallen, dass nach einem Systemneustart bzw.
    CHECKPOINT; GO DBCC DROPCLEANBUFFERS; GO
    die Ladezeiten überproportional hoch sind (statt <1 Sekunde schnell mal 20 Sekunden), bis sich das System nach einigen Abfragen wieder normalisiert hat.

    In anderen Quellen habe ich bereits gelesen, dass bei jedem Neustart der Cache geleert wird (http://ask.sqlservercentral.com/questions/97279/performance-issue-after-restart.html, 2. Antwort).

    Das Problem ist nun, dass an der Gegebenheit, dass das System neu gestartet wird, nichts zu ändern ist. Mein Gedanke war daher, das Leeren des Caches zu verhinden. Gute Idee, schlechte Idee?

    Könnt ihr mir dabei helfen, diese Ladezeiten zu dezimieren? Gerne gebe ich euch noch weitere Infos.
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Dir ist schon bekannt, was ein Cache ist? Falls nein: der liegt im RAM, und RAM ist auf der Flucht, ähm, flüchtig. Du verstehst?
     
  3. gerpara

    gerpara Benutzer

    Ist es mit SQL 2005 möglich, den Speicherort so zu verlegen, dass er nicht mehr flüchtig ist?
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Das ist ja schon der Fall: wenn Du die Möhre ausschaltest, sind die Daten auch in 3 Wochen noch da. Dazu dient, tätääää: die Festplatte.

    Vielleicht solltest Du mal hier lesen: http://de.wikipedia.org/wiki/Cache
     
  5. gerpara

    gerpara Benutzer

    Mir geht es darum, die bereits kompilierten Queries etc. nicht durch einen Neustart zu verlieren. Mir ist allerdings (auch nach Recherche) kein Weg bekannt dies zu bewerkstelligen.

    Das mit dem Cache ist mir bewusst, die Frage war nur falsch gestellt. Es geht mir darum oben genannte Daten zu erhalten. Ist das irgendwie möglich?
     
  6. akretschmer

    akretschmer Datenbank-Guru

    Okay ;-)

    Ähm, für unter 200MB 20 Sekunden?

    Code:
    kretschmer@tux:~$ time dd if=testfile_200mb of=/dev/null
    409600+0 Datensätze ein
    409600+0 Datensätze aus
    209715200 Bytes (210 MB) kopiert, 0,473096 s, 443 MB/s
    
    real    0m0.475s
    user    0m0.104s
    sys     0m0.376s
    kretschmer@tux:~$
    
    Gut, das ist jetzt natürlich sequentielles und hochgradig dummes lesen am Block, aber das sollte auch bei random read nicht 20 sekunden dauern. Vielleicht mal bei Windoof-Experten nachfragen, woran das liegen kann.
     
  7. gerpara

    gerpara Benutzer

    Dann würdest du die Datenbank als Ursache der zu Beginn höheren Ladezeiten und später niedrigeren Ladezeiten ausschließen? (Wenn möglich mit guter Begründung :)
     
  8. akretschmer

    akretschmer Datenbank-Guru

    Bauchgefühl. Ich bin weder mit Windows noch mit M$SQL vertraut.
     
  9. Margit

    Margit Fleissiger Benutzer Mitarbeiter

    Du lehnst dich da ziemlich weit aus dem Fenster - es gibt persistente Caches bzw. Methoden um den Cache sofort nach dem Startup zu füllen (Warm Up). Ob MS SQL sowas beherrscht, weiss ich aber net.
     
  10. Margit

    Margit Fleissiger Benutzer Mitarbeiter

    Oft ist es eine schlecht designte Applikation, 20 Sekunden bei so einer kleinen Datenmenge klingt nach viel - zu viel.
     
  11. akretschmer

    akretschmer Datenbank-Guru

    Bekannt, aber Du solltest beachten, was der Fragesteller bis zu dem Zeitpunkt fragte.
     
  12. akretschmer

    akretschmer Datenbank-Guru

    Möglich, erklärt aber nicht zwingend, warum es erst lahmt und dann flott geht. Die Applikation hat i.d.R. keinen Einfluß auf das Cache-Verhalten der Datenbank und des OS. Ich denke, man sollte schauen, was in den 20 Sekunden nach dem Kaltstart passiert und wo es klemmt. Dauert das Laden von Pladde so lange oder erstellt die Applikation vielleicht erst einmal komplexe Abfragen. Aber, wie gesagt, bin ich nicht genug in der Materie (Windows, M$SQL)
     
  13. Tommi

    Tommi Datenbank-Guru

    Hi,

    mir ist ehrlich gesagt nicht so ganz klar, was mit "Ladezeit" gemeint ist. Wann tritt diese Verzögerung auf? Beim Anmelden, beim ersten Start der Applikation oder bei einer ersten echten Abfrage von Daten?

    VG,
    Tommi
     
  14. gerpara

    gerpara Benutzer

    Zum Thema Anwendung: Bei einer größeren Auswertung über mehrere Datensätze hat die Anwendung insgesamt 250 Sekunden benötigt. Die teuersten Queries ergeben in der Summe 184 Sekunden. Von daher fallen über 70% der Ladezeit auf den SQL Server.

    Jeder Datensatz besteht dabei aus mehreren Objekten. Das reicht von 19 bis hin zu 6700 Objekten pro Datensatz. Auffällig war nun, dass die Ladezeit pro Objekt (nicht pro Datensatz) im Laufe der Zeit (also nach dem Ausführen mehrerer Queries) kontinuierlich (fast linear) abnimmt. Habt ihr Ideen woran das liegen könnte?
     
  15. gerpara

    gerpara Benutzer

    Gut, dass du nachfrägst. Ladezeit habe ich folgendermaßen definiert: Die Anwendung ist bereits gestartet und der Nutzer hat eine Übersicht über alle Datensätze. Er kann nun per Rechts-Klick einen Datensatz öffnen. Ab dem Klick beginnt die Ladezeit. Im Hintergrund werden nun Daten vom SQL Server abgefragt und an die Anwendung übertragen (>=70 %) welche diese dann aufbereitet und dem Nutzer darstellt. Ist dieser Prozess beendet und kann der Nutzer wieder mit der Anwendung interagieren, so ist die Messung der Ladezeit beendet.

    Ich sollte nochmal erwähnen, dass Netzwerke hier keine Rolle spielen sollten, da sich Server und Anwendung auf dem gleichen Notebook befinden.
     
Die Seite wird geladen...
Ähnliche Themen - Cache Leerung Neustart
  1. MiMeng
    Antworten:
    2
    Aufrufe:
    3.444
  2. froemken
    Antworten:
    6
    Aufrufe:
    1.197
  3. Zuchanek
    Antworten:
    1
    Aufrufe:
    3.601

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden