sql >> Database teknologi >  >> RDS >> Sqlserver

SQL-forespørgsel, der kører fint i SSMS, kører meget langsomt i ASP.NET

Der er alle mulige ting, der kunne foregå.

For det første har Ivan G. ret i, at forbindelsesparametre og SET-indstillinger kan være forskellige mellem SSMS og din ASP.NET-klient. Det er noget, der er værd at se nærmere på i Profiler, hvis du har adgang til det.

For det andet, hvis du har kørt din forespørgsel flere gange i træk i SSMS, er det muligt, at resultaterne bliver cachelagret, og det er derfor, det kører så hurtigt i SSMS. Hvis det kører langsomt, første gang du åbner SSMS og prøver at køre det, men derefter accelererer, er det et tegn på, at der er caching i gang.

Med hensyn til hvorfor tilføjelse af en ekstra klausul til en join kunne bremse tingene, er det svært at sige hvorfor uden at vide mere om dine tabeller, men det er ikke umuligt, at det kunne have gjort det. Er der et indeks over BATCH_INGR der inkluderer både FACTORY og INGR_CODE ? Du har muligvis brug for en nu, hvor du inkluderer INGR_CODE i dine tilslutningsbetingelser.

Den bedste måde at finde ud af det på er at se på forespørgselsplanen med og uden INGR_CODE klausul og se, hvordan den adskiller sig. Er omkostningstallet for den ene forespørgsel større end for den anden? Er der bordscanninger, hvor der ikke var før? Er en indekssøgning blevet til en indeksscanning?



  1. Jeg vil indsætte data i mysql-databasen ved hjælp af PDO fra PHP. Men dataene er ikke indsat

  2. Ikke en GROUP BY-udtryksfejl

  3. MySQL bliver ved med at gå ned

  4. Hurtig opdeling af partitionering