В каких ситуациях полезен метод prepare объекта SqlCommand?

StackOverflow https://stackoverflow.com/questions/1553422

Вопрос

Знает ли какой-либо орган, в каких ситуациях полезен метод prepare объекта ADO.NET SqlCommand?

Это было полезно?

Решение

  • Если базовая база данных поддерживает это и
  • Если вы собираетесь вызывать одну и ту же команду (с разными значениями параметров) несколько раз.Таким образом, вы можете сэкономить некоторое время, поскольку база данных может повторно использовать один и тот же план запроса.

Обычно современные базы данных кэшируют команды и планы запросов, но, подготовив свои запросы или команды заранее, вы все равно можете сэкономить некоторое время.

Другие советы

Мы говорим о SqlCommand, которая подразумевает Microsoft SQL Server.Насколько я знаю, SQL Server всегда поддерживал это.

Однако неясно, делает ли это что-нибудь полезное.Мне еще предстоит найти кого-нибудь, кто действительно знает.Многие люди утверждают, что это не дает ничего полезного и нет никакой измеримой разницы в производительности.Я хотел бы так или иначе увидеть доказательства.

В другой базе данных (Firebird, использующий объект FbCommand) Я знаю, что это может вызвать проблемы, если вы не будете осторожны.Если вы подготовите выписку, но затем никогда не воспользуетесь ею, транзакция останется открытой навсегда.Нам пришлось удалить все prepares из нашего кода для Firebird.У нас была привычка готовить все, что могло быть исполнено несколько раз.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top