Jag har haft igång en VB.NET applikation i ett par dagar. Det enda som applikationen gör är lyssnar på en komponent och lagrar alla händelser som komponeten fångar upp. Program är giriga vad det gäller minne. Det brukar hålla minnet så länge det kan. Bara frigöra det när det krävs. Så stirra dig inta allt för blind på siffror. Tänk oxå på att index och cache kräver minne. SQL Server är normalt sett (default vid installation) konfigurerad att hantera minne dynamiskt. Det gör den genom att plocka till sig minne när den behöver det, och normalt sett släpper den inte det igen. Den fortsätter så upp till en viss nivå, bestämd av 'max server memory'-inställningen, vilken vid default konfiguration är satt till samma storlek som minnesmängden i datorn. Detta kan man alltså ändra till något annat om man vill, men normalt sett finns det ingen mening, SQL Server vill gärna ha så mycket minne den kan få, och om maskinen inte används till något annat gör det inget om allt minne (i princip allt förstås, SQL Server lånar lite till operativsystemet) är upptaget av SQL Server. Transaktionsloggen är en också en liten bov som man lätt kan glömma, men den tar sin beskärda del den med.Minnesläcka i Sql-server 2000 ? (LÖST)
Det enda som körs är en lagrad procedur som lagra data i en tabell. Tabellen ser ut såhär:
CREATE TABLE REALTIDSDATA.DBO.tblRealtidsTick (
Symbol VARCHAR(20) NOT NULL,
PropID VARCHAR(10),
Value VARCHAR(50),
TransDate Datetime,
TS TIMESTAMP,
)
VB.Net applikationen och sqlservern har inte startats om senaste 50 timmarna. Totalt har datafilen ökat i storlek till c:a 50 MB. Det som är märkligt att samtidigt tar processen sqlservr.exe upp total 75 MB i virituellt minne.
Jag undrar:
Hur kommer det sig att servern tar upp mer minne än all data som lagrats?
Ligger all data som gått genom den lagrade proceduren kvar i minnet ? Varför ?
Problemet skulle kanske lösas av att starta om sql-servern varje natt eller liknande men det kommer inte att gå när hela systemet är i skarp drift att göra på detta sätt, jag är beroende av att servern kan gå ett par veckor utan omstart. Någon som har någon ide ?
JohanSv: Minnesläcka i Sql-server 2000 ?
Sv: Minnesläcka i Sql-server 2000 ?
Sv: Minnesläcka i Sql-server 2000 ? (LÖST)