Jag har gjort ett program som scannar igenom en textfil
som ligger på 15-17 Mb och loopar in den visentliga texten
i en ms sql databas men mitt minne äts upp
i början går det jätte fort men i slutet går det väldigt segt
programmmet äter upp
200 MB på 10 sekunder jag har (640) det stiger till 580
och ligger sedan där tills programmet avslutas.
Det görs ca 27000 ExecuteNoquery anrop när den lägger in.
Kan man på något sätt stänga ett SqlCommand ?
kanske man inte borde i detta läge hur kan jag snabba upp allt ?
går det snabbare om jag förstör strängar som jag lägger in informationen temporärt i innan jag lägger in det i databasen ?
Om du använder SQL-server kan du ställa in hur mycket minne den max får använda. H-klicka på Servern i Enterprise Manager, välj "Properties" och "Memory".
Om det är en dedicerad SQL Server (den servern bör vara det) så ska den ju få använda "allt" minne som finns tillgängligt.
Sedan att man har en utvecklingsburk där man kör "hela kitet på" är ju en annan sak.
Kanske går det att optimera kod, kanske är det fel på strukturen i programmet som körs mot/använder sig av SQL Servern.
Det finns många "fel källor" till dålig prestanda.
Men! du bör ju inte dra ner antal mb som sql-servern får använda då prestandan kommer att bli än mer lidande FÖR alla databaser på den servern.
Sp belastar ju sqlservern mer än när du enbart kör anrop till den, trodde jag iaf
När du ställer frågor direkt måste dessa kompileras av servern varje gång, medan en stored procedure kompileras bara 1 gång.
Om du fortfarande har problem underlättar det om du kan beskriva mer detaljerat. Har du kod som reproducerar problemet? Samt visa hur databasen ser ut (även index). Det är svårt att med infon du givit avgöra om du missat något i din kod, eller om databasen behöver putsas.
248 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849