В каких ситуациях полезен метод prepare объекта SqlCommand? - PullRequest
2 голосов
/ 12 октября 2009

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

Ответы [ 2 ]

1 голос
/ 01 декабря 2009

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

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

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

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

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

...