Hallo,
weiß jemand was das zu bedeuten hat?:
Um performant zu arbeiten, verwendet der Microsoft SQL Server für DATEV temporäre Dateien (TEMPDB.MDF, TEMPDB.NDF). Rechnen Sie mit einem Festplattenbedarf dieser Dateien von ca. 10% der größten SQL-Datenbank:
Beispiel:
Ist die größte Datenbank (hier zählt die Größe der MDF-Datei) 1.024 GB (= 1 TB) groß: gehen Sie von einem Volumen von 100 GB oder besser 128 GB aus.
Bei uns passt die Rechnung nicht. Die TempDB ist nur ein viertel so groß wie oben beschrieben.
Problem?
@boomboom schrieb:...
Beispiel:
Ist die größte Datenbank ... 1.024 GB (= 1 TB) groß: gehen Sie von einem Volumen von 100 GB oder besser 128 GB aus....
... Datenbanken in dieser Größenordnung will ich erst gar nicht kennen lernen .
Unsere größten Datenbanken haben immer noch eine mittlere zweistellige Gigabyte-Größe (wir haben kein DMS, 'nur' die Dokumentenablage)
... keine Ahnung, ob man die Datenbankgrößen anhand der Anzahl der Mandate und der Wirtschaftsjahre schätzen und den zukünftigen Speicherbedarf prognostizieren kann.
ist ja auch nur ein Beispiel:
sagen wir die größte DB ist 100GB groß, dann ist unsere statt 10GB nur etwa 2,5GB Groß
... da aber dieses Beispiel aus der Datev-InfoDB stammt, vermittelt es den Eindruck, als ob eine solche Datenbank-Größe 'normal' sei.
Die temporären Datenbanken werden meines Wissens nur während der Installation und/oder während der Datenanpassung angelegt und anschließend (hoffentlich) wieder gelöscht.
Wenn man solche riesigen Speichervolumina 'vorhalten' muss und der freie Speicher anscheinend von der Installationsroutine nicht geprüft wird, kann es leicht zu Abbrüchen während der Installation kommen, was richtig hässliche Konsequenzen haben könnte.
... mal recherchieren, ob man die temporären Datenbanken auch temporär auf ein anderes ggfs. auch externes Laufwerk legen kann.
Nachtrag:
Die Größe der "Bereitstellung" hat mich auch schockiert
Deshalb steht ja auch ca. davor? Sonst hätte DATEV das fest auf 10% gelegt. Ist ja alles dynamisch und bei Ihnen läuft doch alles? Oder suchen Sie die Mopsgeschwindigkeit bei DATEV? 😄
ES wird sich die Frage stellen, wieviel Speicher sie dem SQL Server freigegeben haben oder lassen sie das automatisch maximale Größe zu.
Ansonsten würde ich mir keine Gedanken wenn alles läuft und keine Fehlermeldungen produziert werden.
Mit der Installation der DVD 14.0 hat schon längst alles geklappt, aber wenn im o.g. InfoDB-Dokument von "vorheriger Kontrolle" und von "möglichen Abbrüchen" gesprochen wird, werde ich doch etwas skeptisch.
@vogtsburger schrieb:.
Nachtrag:
Die Größe der "Bereitstellung" hat mich auch schockiert
Schockieren tun mich andere Dinge - Datev und Konsorten nicht (mehr).
😂
@vogtsburger schrieb:
Nachtrag:
Die Größe der "Bereitstellung" hat mich auch schockiert
Die Diskettenzeiten von 1,44MB sind schon länger vorbei ...
Nachtrag:
... im o.g. Dokument steht ein Hinweis, der mich interessiert:
Im Standard befindet sich die TempDB auf der Systempartition, außer die TempDB wurde individuell verschoben: Microsoft SQL Server (DATEV): Systemressourcen optimal nutzen (Dok.-Nr. 1014224).
Die temporären Datenbanken scheinen auch im normalen Betrieb verwendet zu werden.
... hatte mich nämlich auch schon gewundert, dass der freie Speicher deutlich abnahm ...
@vogtsburger schrieb:... mal recherchieren, ob man die temporären Datenbanken auch temporär auf ein anderes ggfs. auch externes Laufwerk legen kann.
Sie meine hoffentlich nicht extern im Sinne von per USB angeschlossen, sondern M.2 SSD o.ä.
TempDB auf ein anderes Laufwerk verschiebenVoraussetzung:
Als Administrator oder administrativer Benutzer anmelden.
Am Rechner anmelden, an dem der Microsoft SQL Server (DATEV) installiert ist.
Alle DATEV-Programme bei allen Mitarbeitern sind geschlossen, da zur Durchführung der SQL-Server neu gestartet werden muss.
Vorgehen:
Windows +R drücken und Befehl dsqlm eingeben.
Der DATEV SQL-Manager (Administrator) öffnet sich.
Expertenmodus anhaken im Menüpunkt Ansicht.
Strg + Shift + F8 drücken.
<Rechnername> (LOKAL) markieren und Kontextmenü mit der rechten Maustaste öffnen.
Menüpunkt Temporäre SQL-Server Datenbanken verwalten wählen.
SQL-Server-Instanz (DATEV_DBENGINE) wählen und auf ein anderes Laufwerk ziehen.
Mit der Schaltfläche Verschieben bestätigen.
Beachten Sie die zusätzliche Programmhilfe im Programmfenster.
Sofort verschieben wählen.
- oder -
Beim nächsten Starten des SQL-Servers verschieben wählen.
Hier muss die ursprüngliche TempDB von Ihnen nachträglich gelöscht werden (Standardpfad: %programfiles%\Microsoft SQL Server\MSSQL<VERSION>.DATEV_DBENGINE\MSSQL\DATA).
Mit OK bestätigen.
Die TempDB wurde auf das gewünschte Laufwerk verschoben.
Ja, die werden auch im laufenden Betrieb benötigt.
Trotzdem irritiert mich, dass die nur ein viertel so gross wie „ca.“ ist.
Nicht das wir nachher Performance verschenken ;-).. ein paar jährchen muss der Server auch noch.
Theoretisch könnte man die Db auch manuell vergrössern.
Dem Sql habe ich den maximalen Ram auch manuell zugewiesen.
... wenn temporäre Datenbanken auch im Normalbetrieb ständig verwendet werden, dann natürlich nur auf einer zusätzlich eingebauten Festplatte.
Nachtrag:
Übrigens, ich stelle fest, dass der Tipp von @Dirk_Jendritzki bzgl. der verbesserten Zitier-Möglichkeit auf 'fruchtbaren Boden' fällt 😉
... trotz abfälliger Äußerungen aus der Community 😉
@vogtsburger schrieb:... da aber dieses Beispiel aus der Datev-InfoDB stammt, vermittelt es den Eindruck, als ob eine solche Datenbank-Größe 'normal' sei.
Die temporären Datenbanken werden meines Wissens nur während der Installation und/oder während der Datenanpassung angelegt und anschließend (hoffentlich) wieder gelöscht.
Bitte zwischen temporären Datenbanken während Datenanpassung/Releasewechsel und TempDB unterscheiden. Letztere sind für den Betrieb essenziell und sollten in passender Anzahl und Größe auf dem schnellsten Speichermedium liegen.
... mal recherchieren, ob man die temporären Datenbanken auch temporär auf ein anderes ggfs. auch externes Laufwerk legen kann.
Nein, in einer DATEV Umgebung nicht.
Hallo,
die TempDB wird immer wieder herangezogen, um temporär Daten zu bearbeiten.
Spüren, bzw. sehen kann man dies, wenn große Änderungen in den Anwendungs-Datenbanken durchgeführt werden, z. B. Anlegen des neuen Wirtschaftsjahrs in Rechnungswesen für mehrere Mandanten nacheinander.
Auch die Datenbankprüfung nutzt die TempDB, hier kann es ca. 7% der größten Datenbank ausmachen.
Bis zu den DATEV-Programmen 13.x war die Standard-Startgröße der TempDB bei 8 MB bei einer einzigen TempDB-Datendatei gelegen (TempDB.mdf - 8MB, TempDB.ldf - 1MB).
Zu den DATEV-Programmen 14.0 wurde die Startgröße und die Anzahl der TempDBs angepasst.
Die Standard-Startgröße liegt jetzt bei 256 MB und es gibt so viele TempDB-Datendateien wie Kerne im / in den Prozessor(en), aber max. 8 Stück.
War vor der 14.0 bereits eine größere Startgröße der TempDB eingestellt, dann wurde diese herangezogen, auf die nächste 2er-Potenz angehoben und auf die Anzahl der Datenbank-Dateien verteilt. (siehe 1018582)
Warum haben wir die Startgröße geändert?
Wenn es erforderlich ist, wird die TempDB herangezogen und im laufenden Betrieb vergrößert - das macht der SQL Server selbständig.
Hat man eine kleine Startgröße, muss die TempDB erst soweit vergrößert werden, dass es für die Anforderung passt, was in einzelnen Wachstums-Schritten passiert. Je mehr solche Schritte notwendig sind, desto länger dauert es, bis die TempDB-Datenbank auf ihre benötigte Größe angewachsen ist.
Es macht also durchaus Sinn, gleich mit einer größeren TempDB zu starten.
Und um nicht mehrere Anforderungen in einer TempDB abzuarbeiten, werden jetzt mehrere herangezogen.
Ich hoffe, ich konnte ein wenig für Klarheit sorgen.
Viele Grüße
Harald Sommer
IT-Systemplattform
DATEV eG
Danke @Harald_Sommer ,
... es ist immer irgendwie beruhigend, wenn man die technischen Angaben von 'offizieller' Seite (also vom Softwareanbieter) genau so in seinem eigenen System bestätigt sieht 😊
Das fördert den ruhigen Schlaf (außerhalb der Arbeitszeit).
Hallo Herr Sommer,
dann macht es jetzt Sinn, eine größere Start-TempDB zu erstellen?
Wir haben jetzt den Standard 8 x 256MB.
Unsere größte Datenbank ist aber wesentlich größer als ca. 20 GB.
Also den Menüpunkt habe ich gefunden.
Kann man das im laufenden betrieb machen?
Meinetwegen 1024mb mdf, 512mb ldf
Intervall 512 mdf, 256 ldf?
oder ist zu groß wieder kontraproduktiv?
Auf der anderen Seite müsste ja die TempDB theoretisch schon größer sein, wenn er das automatisch macht.
Müsste ich mal im laufe der Woche beobachten. Sonst bringt es ja eh nichts...
Hängt die TempDB mit dem verfügbaren Arbeitsspeicher zusammen?
Dann könnte die Ratio wieder Sinn ergeben.
... wenn Sie Ihre größte Datenbank prüfen, wird laut Hr. @Harald_Sommer ca 7% für die TempDB gebraucht.
Wenn die nächste Größe der TempDB 8x512MB=4GB ist, könnte die größte Datenbank also ca 57 GB groß sein (nach dieser 'Milchmädchenrechnung')
Die Überprüfung kann 7% brauchen.. jo.
Standard ist ja 256. Also theoretisch müsste ich sie dann anpassen.
Da sie selbst allerdings noch nicht automatisch angewachsen ist, scheint die Rechnung zumindest bei uns nicht (annähernd) zu passen.
... vielleicht haben Sie noch keine Datenbankprüfung gemacht, oder Sie machen z.B. keine Online-Sicherungen.
Vielleicht wird bei einer der nächsten großen Aktionen die TempDB automatisch angepasst.
Die automatische Vergrößerung ist ja sicher auch keine 'schwere körperliche Arbeit' für den SQL-Server. Das Belegen von Festplattenspeicher stelle ich mir nicht so langwierig vor 😁
Die Prüfung ist gestern Abend durch und es wird "Online" gesichert.. kein abhängen der DB.
Im SQL steht:
Die "tempdb" Datenbank wird bei jedem Start der SQL Server-Instanz mit dieser Anfangsgröße neu angelegt.
Mit einer größeren "tempdb" bereits beim Start können Sie eine bessere Performance erreichen,
da dann die Datenbank nicht erst im laufenden Betrieb immer wieder vergrößert werden muss.
Die Häufigkeit der Vergrößerungsvorgänge können Sie durch Einstellung des Vergrößerungsintervalls steuern.
Eine optimale Wahl des Vergrößerungsintervalls beeinflusst die Performance positiv.
In Systemen mit mehreren Prozessoren verbessern mehrere Daten-Dateien der "tempdb" die Performance ebenfalls.
Es werden die Wartezeiten der CPUs beim Zugriff auf die "tempdb" Dateien reduziert.
Was der da rechnet und wie Ressourcenintensiv das ist.. keine Ahnung.
Man könnte da wohl noch was rausholen ;-).
Hallo boomboom,
bitte werfen Sie einen Blick in das Verzeichnis der TempDB -
C:\Program Files\Microsoft SQL Server\MSSQL14.DATEV_DBENGINE\MSSQL\DATA
Dort sind die TempDB.mdf und die TempDB.ndfs zu finden (wenn nicht der Ablageort verändert wurde).
Hier macht es Sinn, zu schauen, wie groß die TempDBs im Laufe eines Tages / bis zum nächsten Start des SQL Servers werden. Das sollte ein paar Tage beobachtet und dann als Richtwert herangezogen werden.
Konfigurieren lässt sich die TempDB im DATEV SQL-Manager (Administrator) direkt am Server (oder am Einzelplatz).
Wie es geht, steht im Dokument 1014224 - Kapitel 3
Über den Weg lässt sich nicht nur die TempDB verschieben, sondern auch die Startgröße, die Anzahl der TempDB-Datendateien und das Vergrößerungsintervall einstellen.
Bei jedem Neustart des SQL Servers wird die TempDB auf die eingestellte Startgröße zurückgestellt und wächst dann im Betrieb wieder an.
Für weitere Fragen, starten Sie bitte einen Servicekontakt, dann können wir die Fragen individuell beantworten.
Viele Grüße, Harald Sommer
IT Systemplattform
DATEV eG
@Harald_Sommer schrieb:Es macht also durchaus Sinn, gleich mit einer größeren TempDB zu starten.
Ich habe es leider gerade an den Augen : Wo stelle ich die Anfangsgröße denn ein?
Hallo Herr Sommer,
ja, da stehen in dem Verzeichnis nur die 2GB rum. Trotz DB-Prüfung..
Danke.
P.S.:
Direkt am Server/SQL-Manager mit Strg + Shift + F8 drücken.
Rechte Maustaste (server) lokal, fünfter von oben.
Rechte Maustaste datev_dbengine
Hallo siro,
so, wie es im Dokument 1014224 steht:
Vorgehen:
1. Windows +R drücken und Befehl dsqlm eingeben.
Der DATEV SQL-Manager (Administrator) öffnet sich.
2. Expertenmodus anhaken im Menüpunkt Ansicht.
3. Strg + Shift + F8 drücken.
4. <Rechnername> (LOKAL) markieren und Kontextmenü mit der rechten Maustaste öffnen.
Menüpunkt Temporäre SQL-Server Datenbanken verwalten wählen.
Es öffnet sich ein Fenster, in dem Sie alle Einstellungen vornehmen können.
Größe bedeutet hier Startgröße - für die Datendatei(en) und für die Logdatei.
Viele Grüße, Harald Sommer
IT-Systemplattform
DATEVeG