Има всякакви неща, които може да се случват.
Първо, Иван Г. е прав, че параметрите на връзката и опциите SET може да са различни между SSMS и вашия ASP.NET клиент. Това е нещо, което си струва да разгледате в Profiler, ако имате достъп до него.
Второ, ако сте изпълнили заявката си няколко пъти подред в SSMS, е възможно резултатите да се кешират и това е причината да работи толкова бързо в SSMS. Ако работи бавно първия път, когато отворите SSMS и се опитате да го стартирате, но след това се ускори, това е знак, че се извършва кеширане.
Що се отнася до това защо добавянето на една допълнителна клауза към съединение може да забави нещата, трудно е да се каже защо, без да знаем повече за вашите таблици, но не е невъзможно това да го е направило. Има ли индекс над BATCH_INGR
което включва както FACTORY
и INGR_CODE
? Може да имате нужда от такъв сега, след като сте включили INGR_CODE
във вашите условия за присъединяване.
Най-добрият начин да разберете е да разгледате плана на заявката със и без INGR_CODE
клауза и вижте как се различава. Стойността на едното запитване по-голяма ли е от тази на другото? Има ли сканирания на таблици там, където не е имало преди? Превърна ли се търсенето в индекс в сканиране на индекс?