sql >> Databasteknik >  >> RDS >> Sqlserver

SQL-fråga som fungerar bra i SSMS går väldigt långsamt i ASP.NET

Det finns alla möjliga saker som kan hända.

För det första har Ivan G. rätt i att anslutningsparametrar och SET-alternativ kan vara olika mellan SSMS och din ASP.NET-klient. Det är något som är värt att titta på i Profiler, om du har tillgång till det.

För det andra, om du har kört din fråga flera gånger i rad i SSMS, är det möjligt att resultaten cachelagras och det är därför den körs så snabbt i SSMS. Om det går långsamt första gången du öppnar SSMS och försöker köra det, men sedan går snabbare, är det ett tecken på att det pågår cachning.

När det gäller varför att lägga till en extra klausul till en join kan sakta ner saker och ting, det är svårt att säga varför utan att veta mer om dina tabeller, men det är inte omöjligt att det kunde ha gjort det. Finns det ett index över BATCH_INGR som inkluderar både FACTORY och INGR_CODE ? Du kanske behöver en nu när du inkluderar INGR_CODE i dina anslutningsvillkor.

Det bästa sättet att ta reda på det är att titta på frågeplanen med och utan INGR_CODE klausul och se hur det skiljer sig. Är kostnadssiffran för en fråga större än för den andra? Finns det bordsskanningar där det inte fanns tidigare? Har en indexsökning förvandlats till en indexskanning?



  1. SQL använder kommaseparerade värden med IN-sats

  2. Utforska lagringsmotoralternativ för MariaDB

  3. Hur ställer man in en variabel till resultatet av en lagrad procedur i en Trigger MYSQL?

  4. Last_value window-funktionen fungerar inte korrekt