10. juni 2003 - 11:23Der er
15 kommentarer og 1 løsning
Hastighedproblemer med connection til MSSQL server fra ASP
Hej
Jeg har et problem - når jeg eksekverer min sql kan det sometider gå meget langsomt.
Min sql er dynamisk genereret, og kan have både LIKE og = blandet sammen! F.eks. søger jeg med LIKE på tekstfelter og = med på talfelter!
Med den ene sql-sætning kan jeg få 2000 records - med den anden kan jeg ikke få mere end ca. 630 - før jeg får følgende fejl:
Microsoft OLE DB Provider for SQL Server error '80040e21'
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
Et eksempel på en sql-sætning som giver ovenstående fejl:
SELECT tblFirma.*, tblPostnr.* FROM tblFirma LEFT JOIN tblPostnr ON tblFirma.postnummer = tblPostnr.postnr AND tblFirma.Land = tblPostnr.Land WHERE tblFirma.DBstatus = 2 AND tblFirma.Saelger = 4 ORDER BY FirmaNavn
Men hvis jeg f.eks. søger med følgende: går det stærkt nok, og ingen fejl, selvom det returnerer ca. 2000 rækker!
SELECT tblFirma.*, tblPostnr.* FROM tblFirma LEFT JOIN tblPostnr ON tblFirma.postnummer = tblPostnr.postnr AND tblFirma.Land = tblPostnr.Land WHERE tblFirma.DBstatus = 2 AND tblFirmaOplysning.Firmatype = 1 ORDER BY FirmaNavn
Mine spørgsmål er så 1. Kan jeg lave noget om i min connection, for at eliminere denne fejl? 2. Er der noget opsætning der skal foretages på serveren? 3. Kan der været noget i de rækker jeg returnerer via den første sql-sætning, som kan lave ged i resultatet? 4. Hvordan kan jeg generelt optimere det hastigshedsmæssigt? 5. Vil det hjælpe at indexerer databasen, og i så fald hvordan gør jeg det, og hvad skal der index på?
Jeg kan lige nævne at der er cirka 6000 records i databasen, så det burde på ingen måde gå så langsomt!
Janus_007>> Jeg vil prøve og smide feltnavnene på.
Jeg bruger Rs.close hvis det er det du mener? Jeg er ret ny i ASP verdnen så er ikke sikker på hvad du mener!
Nyeste MDAC - hvordan kan jeg se hvilken jeg kører med og hvad er den nyeste og hvor henter jeg den?
erikjacobsen>> Problemet er at jeg ikke selv har designet databasen, og der er data i tblFirma der enten ikke har noget postnummer, eller ikke har et postnummer der matcher den forespørgsel derfor bliver jeg nødt til at bruge JOINS på den!
Altså den virker jo, men du skal nok kigge lidt på hvordan du connecter når du skal fintune, der er som sagt ikke det store at hente, men hellere lave det ordentligt :O)
Set rs = Server.CreateObject("ADODB.RecordSet") Set objConn = Server.CreateObject("ADODB.Connection") Set objComm = Server.CreateObject("ADODB.Command")
Selvfølgelig gider jeg det - men ikke så hastig ;o) Ville lige have svar på det sidste
Du får point - og mange tak!
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.