12. december 2002 - 19:38Der er
8 kommentarer og 2 løsninger
ADO og SQL
Jeg bruger ADO og SQL fra VB sammen med MS sql 7.0 database. Er der en grænse på hvor lang en sql-linine man må sende? Er der en grænse på hvor mange sql'er der må være i en sql sætning (adskilt af semikolon!)?
Hvordan eksekverer man hurtigst f.eks 200 "inserts"? Ved at sende dem i en SQL adskilt af ; ?
Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
Der er flere måder at gøre den slags på! Alt afhængig af om vi kun snakker sølle 200 inserts eller 200000 af gangen. Du kan sende dem i en execute og adsille dem vha. ; , det er den hurtigste måde at skrive det på men ikke den hurtigste måde at indsætte på. Du kan også åbne flere samtidige connections i VB og så evt. lade en connection tage sig af 20% workloadet... Den tredie og absolut hurtigste løsning er at bruge bulk insert - Det er op til dig... jeg vil gerne hjælpe yderligere :O)
ps. mht. max længde på den ; adskilte... hmmm det ved jeg faktisk ikke men jeg har været oppe på 80000 inserts i sådan en fordelt ud på omkring 16 values. Der lå mine umiddelbare tidsmålinger på omkring 200-250 inserts i sekundet, altså forfærdeligt langsomt.
Græsnen på en sætning er 4 GB og det burde vel være rigeligt når man tænker på at der er ren tekst ik' ?. Hvor mange SQL'er der i EN sætning er jo lidt af sprøgsmål syntes du ikke? Hvis det er en sætning der forespørger om forskellige ting i et par tabeller eller flere er det vel okay. Men er det en forespørgsel over mere end 3 tabller begynder det at blive avanceret.
hmm jeg kom lige i tanke om, at du måske kunne bruge prepared SQL-statements. De er væsentligt hurtigere end den konventionelle, og reletivt simple at bruge! - Ja du har jo allerede lagt første skridt ved at bruge rs.execute (formoder jeg) *GG*, som netop er beregnet til prepared sql og ikke som den normalt anvendes... men det er en helt anden sniksnak!
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.