09. januar 2004 - 12:46Der er
7 kommentarer og 1 løsning
Er en stored procedure for hurtig?
Jeg har oprettet en SP som gør følgende:
0. Hvis tabellen "nytindhold" findes, slet den 1. opretter en tabel: "nytindhold" 2. insert into "nytindhold" select id,navn from Tabel1 3. insert into "nytindhold" select id,navn from Tabel2 4. Select * from nytindhold
Mit problem er nu: Jeg ved med sikkerhed at der bliver fyldt indhold ind i "nytindhold" tabellen, men alligevel får jeg intet resultat ud af punkt 4 når jeg afvikler min SP i QueryAna.
Afvikler jeg derimod min SP, efterfulgt af punkt 4. i QueryAna, så får jeg et resultat.
Bliver punkt 4 afviklet for hurtigt i min SP, til at SQL-serveren fatter at der er kommet indhold ind i tabellen, og i så fald, hvordan kan jeg få serveren til at tage en "tænkepause" inden den afvikler punkt 4.??
For at undgå recompileringer hver gang du afvikler proceduren ville jeg som det første foretage en sletning af rækkerne i tabellen frem for at nedlægge og oprette tabellen - jeg ved det kan være dyrt hvis der er mange rækker, men har du de rigtige rettigheder kan du jo bruge truncate table. Hvis du er rigtig heldig løser det måske også den resterende del af problemet, men det er kun et gæt ..
Okay, siden i begynder at foreslå GO her og der, så skal det lige siges, at pkt. 2 og 3 - sætningerne bliver genereret som en child SP(dynamisk SP) og efterfølgende afviklet med "Exec Child_SP", så allerede der går der "masser af rid"
Jeg har løst problemet ved at lave "#nytindhold" i stedet. Den er åbenbart hurtig nok ?!?
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.