Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Speicherauslastung eines SQL-Servers (https://www.delphipraxis.net/44418-speicherauslastung-eines-sql-servers.html)

DiscMix 19. Apr 2005 10:19

Datenbank: MSSQL - Server • Version: 7 • Zugriff über: ADO

Speicherauslastung eines SQL-Servers
 
Hallo Datenbankprofis,

ich habe ein Problem ;)
Mit meinem Programm prüfe ich zwei SQL-Datenbanken ab.
In der "führenden" DB werden Kundendaten angelegt, bzw. aktualisiert.
Diese müssen dann in die zweite DB geschrieben bzw. abgeglichen werden.
Dies passiert in zeitlichen Intervallen (bsp: alle 3 min).
In diesem Intervall passiert dann ungefähr folgendes:

-Datenbankverbindung DB1 öffnen
-Datenbankverbindung DB2 öffnen
-Query für DB1 ausführen (Welche Daten haben sich innerhalb des Intervalls geändert)
-Für jede Zeile im Query prüfen ob vorhanden, evtl Update oder Insert über ADOCommand.execute ausführen
-Query schliessen
-Datenbanverbindung DB2 schliessen
-Datenbankverbindung DB1 schliessen

Beobachte ich das Verhalten im Taskmanager sehe ich folgendes:
Die Speicherauslastung des SQL-Server wird beim ausführen des Intervalls grösser. Zwar nur minimal, doch man kann hochrechnen wie lange es dauert, bis nichts mehr funktioniert. Zusätzlich (vielleicht davon abhängig) wird bei jedem Start des Intervalls die Zeitspanne von Start (ein Fenster öffnet sich) bis zum eigentlichen Ablauf (Ein Statusbalken) grösser.

Meine Frage: Wie kann ich verhindern, dass der Speicher des Servers immer grösser wird? Gibt es eine Funktion „aufräumen“?

Danke und Gruss aus Hamburg
Marco

marabu 19. Apr 2005 10:29

Re: Speicherauslastung eines SQL-Servers
 
Das Anwachsen der Speicherbelegung muss kein Fehler sein. Das kann auch an der dynamischen Speicherverwaltung liegen. Der Server gibt aber Speicher automatisch wieder ab, wenn er vom OS angefordert wird.
Wenn dir das nicht zusagt, kannst du die Speicherverwaltung von dynamisch auf fest umstellen.
Server-Eigenschaften - Abschnitt Arbeitsspeicher.
Kann aber sein, dass du das später bereust.

Generalissimo 19. Apr 2005 12:57

Re: Speicherauslastung eines SQL-Servers
 
Wenn du schon ein MS SQL Server hast, warum nutzt du nicht die interna des Servers, sondern
lässt es über die Anwendung laufen?

Mögliche Alternativen:

- Replikation im SQL-Server
- SP's die mit Triggern gestartet werden

Auch ist der Zugriff auf einen Remote-Server innerhalb einer SQL-Abfrage oder SP nicht das Problem.
Stichwort hier für die Online-Hilfe "sp_addlinkedserver"

So würdest du die Aufgaben verlagern und hättest kein Speicherproblem mehr


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz