sql >> Databáze >  >> RDS >> Sqlserver

Dotaz SQL, který běží dobře v SSMS, běží v ASP.NET velmi pomalu

Mohou se dít nejrůznější věci.

Za prvé, Ivan G. má pravdu, že parametry připojení a možnosti SET se mohou mezi SSMS a vaším ASP.NET klientem lišit. To je něco, co stojí za to prozkoumat v Profileru, pokud k němu máte přístup.

Zadruhé, pokud jste svůj dotaz spouštěli vícekrát za sebou v SSMS, je možné, že se výsledky ukládají do mezipaměti, a proto běží v SSMS tak rychle. Pokud běží pomalu, když poprvé otevřete SSMS a pokusíte se jej spustit, ale pak se zrychlí, je to známka toho, že probíhá ukládání do mezipaměti.

Pokud jde o to, proč by přidání jedné další klauzule do spojení mohlo věci zpomalit, je těžké říci proč, aniž byste věděli více o vašich tabulkách, ale není vyloučeno, že by to bylo možné. Existuje index nad BATCH_INGR který zahrnuje jak FACTORY a INGR_CODE ? Možná ho budete potřebovat nyní, když vkládáte INGR_CODE ve vašich podmínkách připojení.

Nejlepší způsob, jak to zjistit, je podívat se na plán dotazů s a bez INGR_CODE klauzule a uvidíte, jak se liší. Je hodnota nákladů na jeden dotaz větší než na druhý? Existují skeny tabulek tam, kde dříve nebyly? Změnilo se hledání indexu na skenování indexu?



  1. Oracle Sequence negeneruje průběžné číslo

  2. Dotaz MySQL s limitem a velkým offsetem trvá věčnost

  3. Jak mohu zkontrolovat řetězec unicode Pythonu, abych zjistil, že je *ve skutečnosti* správným Unicode?

  4. Snadný způsob, jak nasadit MySQL Galera Cluster na AWS