Как кэширование параметров улучшает производительность в ADO.NET? - PullRequest
2 голосов
/ 28 июня 2011

Хочу углубить свои знания ADO.NET - читая код Enterprise Library, я заметил, что они используют технику, называемую «кэширование параметров»

Может кто-нибудь объяснить мне, как это улучшает производительность и какие сценарии это помогает?

Является ли выигрыш в производительности исключительно стоимостью конструирования объектов DbParameter или что-то еще происходит на стороне SQL Server в плане плана запросов?

Я думаю, что в первый раз, когда вы собираете объект DbCommand и соединяетесь с соответствующими объектами DbParameter, на этом этапе SQL Server кэшировал план выполнения и последующие вызовы той же процедуры с теми же шаблонами параметров. будет повторно использовать существующий кэшированный план выполнения на сервере?

1 Ответ

1 голос
/ 28 июня 2011

Я думаю, что это просто, чтобы избежать обходов базы данных при вызове SqlCommandBuilder.DeriveParameters :

Если информация о параметре известна заранее, это более эффективно заполнить коллекцию параметров установка информации явно.

...