Рефакторинг вашего кода с помощью этого ключевого слова: с использованием
Заполнение памяти не является детерминированным, в вашем примере эффективная память, используемая исполняемым файлом, будет освобождена только тогда, когда происходит сбор мусора, поэтомуможет видеть увеличение памяти, но это не может быть проблемой, оно будет собрано рано или поздно, и память вернется к правильному значению.
После просмотра комментария проблема, похоже, не в вашем коде C #(также, если вы используете ключевое слово using, это хорошая идея!), если есть проблема ...
SQL Server будет увеличивать занятость памяти до тех пор, пока у нее не будет свободной памяти, он будет работать таким образом.В вашем примере каждый раз, когда вы передаете новое предложение where, оно будет кэшировать оператор SQL, поэтому использование памяти будет увеличиваться до тех пор, пока у вас не будет свободной памяти.
В этом случае я предлагаю вам реорганизовать ваш код, чтобы использовать хотя бы SQLпараметры для создания предложения where, поэтому SQL всегда будет оставаться неизменным, и меняются только параметры, таким образом SQL-сервер будет кэшировать только один оператор SQL, а не тысячи.Еще лучше создать хранимую процедуру, но обычно параметров достаточно.
Имейте также в виду, что способ построения оператора SQL действительно небезопасен и может привести к атакам с использованием SQL-инъекций, использование параметров исправитэто тоже.
С уважением
Массимо