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 ; ?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.