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?