Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zapytanie SQL, które działa dobrze w SSMS, działa bardzo wolno w ASP.NET

Wiele rzeczy może się dziać.

Po pierwsze, Ivan G. ma rację, że parametry połączenia i opcje SET mogą się różnić między SSMS a klientem ASP.NET. To jest coś, na co warto zwrócić uwagę w Profilerze, jeśli masz do niego dostęp.

Po drugie, jeśli wielokrotnie uruchamiasz zapytanie w SSMS, możliwe, że wyniki są buforowane i dlatego działa tak szybko w SSMS. Jeśli po pierwszym uruchomieniu SSMS działa wolno i próbujesz go uruchomić, ale potem przyspiesza, to znak, że trwa buforowanie.

Co do tego, dlaczego dodanie jednej dodatkowej klauzuli do sprzężenia może spowolnić działanie, trudno powiedzieć, dlaczego nie wiedząc więcej o stołach, ale nie jest wykluczone, że to mogło to zrobić. Czy istnieje indeks nad BATCH_INGR? który zawiera zarówno FACTORY i INGR_CODE ? Możesz go potrzebować teraz, gdy dołączasz INGR_CODE w twoich warunkach przyłączenia.

Najlepszym sposobem, aby się tego dowiedzieć, jest spojrzenie na plan zapytań z INGR_CODE i bez niego klauzuli i zobacz, czym się różni. Czy koszt jednego zapytania jest większy niż drugiego? Czy istnieją skany tabel tam, gdzie nie było ich wcześniej? Czy wyszukiwanie indeksu zamieniło się w skanowanie indeksu?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy istnieje sposób na uproszczenie porównania NULL 2 wartości?

  2. Jak wyeksportować pole obrazu do pliku?

  3. Sortuj według liczby nie sortuje poprawnie - SQL (MS Access 2007)

  4. Czy jest jakaś różnica między IS NULL a =NULL?

  5. Jak uzyskać kalendarz kwartał z daty w TSQL?