Jag har följande funktion i mitt javaprogram: Du skall inte skapa ny connection, det blir ännu längre tid. Dock kan du skapa en lagrad procedur att använda för dina insert istället. Att det går långsamt kan bero på flera saker som du säkert förstår. Allt från defragmentering av disk till inställningar i sql-server. Ett exempel kan vara att när databasen expanderar så gör den det i så små sektioner att disken får arbeta kopiöst. Hejsan,LÅngsam databas inskrivning
vilken helt enkelt kör en insert på entabell.
Databasen är SQL server och jag sitter je på servern!
(Classen har en private Connection och Statement!)
public String setValidation(int pk, String flag){
try { String sql = "INSERT INTO VALIDATION (FK, RESULT, CHECK_DATE, SOURCE) VALUES (" + pk + ", '" + flag + "', '" + date + "', '" + source + "')";
this.setStat.executeQuery(sql);
return "OK";
}
catch(Exception e){
return "setValidation(): " + e;
}
}
Dock blir detta mycket långsamt, jag har en loop som körs där ovanstående funktion bland andra körs. Denna funktion gör dock att varje steg i loopen tar närmare en sekund längre tid, är detta rimligt? Kan jag göra något för att få det att gå fortare, eller vad kan det bero på?
Bör jag skapa en ny connection för varje insert?
Sv: LÅngsam databas inskrivning
En annan variant kan vara din cpu. Ytterligare en variant är att det är stora datamängder vid varje insert. Ytterligare en variant är att du har ett eller flera index på den tabellen som måste skapas i samma takt som datat. Connectionsträngen samt vad du använder för att addera spelar också roll. Det kan även vara så att mssearch ligger och tar mycket cpu på din dator som försöker indexera filer samtidigt (går att stänga av).
Ja, det var ett gäng punkter att beakta - hoppas någon av dessa ger dig tips. Sen är även frågan vad du betraktar som långsamt, är det 100 transar/sekund eller 10 ?Sv: LÅngsam databas inskrivning
Jag skulle helt enkelt sätta mig med SQL Server Profiler för att se vad som händer under körningen, och var det tar lång tid.
Jag gjorde en snabb sökning på Google om Profiler, och det gav mig detta:
http://vyaskn.tripod.com/analyzing_profiler_output.htm
Kanske kan det hjälpa dig komma igång med Profiler. (Finns säkert något bättre, men jag har inte tid att leta just nu)