Я работаю над программой .NET, которая выполняет произвольные сценарии для базы данных.
Когда коллега начал писать код доступа к базе данных, он просто предоставил один объект команды остальному приложению, которое используется повторно (настройка CommandText
/ Type
, вызов ExecuteNonQuery()
и т. Д.) Для каждого оператора .
Я полагаю, что это большой удар по производительности для повторяющихся идентичных операторов, потому что они анализируются заново каждый раз.
Что меня интересует, так это то, ухудшит ли это также скорость выполнения, если каждый оператор отличается от предыдущего (не только разные параметры, но и совершенно другой оператор)? Я не мог легко найти ответ на этот вопрос в документации.
Кстати, используемая СУБД - это Oracle, но я думаю, что этот вопрос не является специфическим для базы данных.
P.S. Я знаю, что экспонирование того же объекта Command
не является потокобезопасным, но здесь это не проблема.