07. november 2005 - 09:54Der er
16 kommentarer og 2 løsninger
Ang. MSSQL og Timeout
Hey all...
Jeg sidder og skal lav et stort udtræk fra vores MS SQL database, men får så flg. fejlmeddelse:
Fejl: System.Data.SqlClient.SqlException: Timeout er udløbet. Timeoutperioden udløb, før handlingen blev fuldført, eller serveren svarer ikke. Den siger at fejlen opstår i linje 48, og der har jeg flg. i min kode: SqlDataReader myReader = cmd.ExecuteReader();
Nogen der kan sige mig hvad der går galt?
Her er koden:
string txtData = ""; SqlCommand cmd = new SqlCommand("SELECT COUNT(Nummer) FROM [NET Danmark AS$Forsendelse] WHERE [Oprettet d.] = '03-11-2005' GROUP BY nummer", oSQLConn); try { SqlDataReader myReader = cmd.ExecuteReader(); while (myReader.Read()) { txtData += myReader.GetString(5) + "\n"; }
public void getLMGData() { string txtData = ""; SqlCommand cmd = new SqlCommand("SELECT * FROM [NET Danmark AS$Forsendelse] WHERE ([Oprettet d.] BETWEEN ('01-10-2005') AND ('31-10-2005')) AND (AgentKode = '6666CLK')", oSQLConn); cmd.CommandTimeout = 320; FileStream fs1 = new FileStream("tekstfil.txt", FileMode.OpenOrCreate, FileAccess.Write, FileShare.Write); StreamWriter sw = new StreamWriter(fs1);
Det er et Navision system som får trukket nogle hissige forspørgelser af vores kundeservice afdelinger osv. så tralvlt har databasen da...
SQL serveren er blevet sat op af et professionelt firma, så jeg går ikke ud fra at MSSQL serveren er sat forkert op... Det er jo nok højst sandsynlig et hardware problem vi har, eftersom der er sket meget på det sidste datamæssigt.
Men i skal i hvertfald ha' tak for jeres hjælp.
"venne" og "Arne_v" gider i ikke ligge et svar, så får i lige points...
prøv at udkommentere sw.Write(txtData); og så se hvor lang tid det tager så kan du se hvor lang tid det tager at læse data og finder ud af om det er disk skrivningen der sløver det ned
Jeg er enig med arne_v i at det er alt for langsomt. Enten er serveren for lille eller overbelastet, eller også må der være mange, mange millioner rækker i tabellen. En reorganisering kunne måske også hjælpe.
Can you run the test at a time with low load on the system ?
If it still takes 3 minutes something is wrong.
Even with millions of rows.
The performance is equivalent to a hard IO per row. A cache hit rate of 0%.
That is statistically impossible.
You select on creation date. Many of theese rows should be close to each other.
If the database is accessed remotely, it could also be interesting to try and run the test locally to see if the network is the bottleneck.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.