Наиболее эффективный способ записи, чтения и удаления (не обновления) данных в базу данных SQL Server в .net - PullRequest
2 голосов
/ 28 марта 2012

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

Обычно я просто выбил бы Entity Framework для этого.Но мне нужно, чтобы это было быстро.Действительно быстро.

Строка будет bigint, bigint и varchar(max).

Есть ли более быстрый способ, чем Entity Framework?Если так, что это?

(я иду против SQL Server 2008 R2)

Ответы [ 2 ]

5 голосов
/ 28 марта 2012

Raw ADO.NET - самый быстрый, но я бы выбрал Dapper в качестве микро-ORM.Это невероятно быстро и очень помогает вам в разработке.

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

Я бы не стал задумываться о технологии доступа к данным, кроме того, что вам нужно что-то, что приближает вас к реальному SQL и ненавязать вам слишком много абстракций. Используйте свое время, чтобы подумать о базе данных, расположении индексов, обработке транзакций и оптимизации запросов.Именно здесь вы найдете основной прирост производительности.

5 голосов
/ 28 марта 2012

На странице Dapper ORM есть некоторые полезные сведения об этом.

См. Раздел Производительность отображения SELECT за 500 итераций - сериализация POCO и ниже.Здесь обсуждаются только SELECT, но вы можете экстраполировать их до некоторой степени.

Например, вы можете видеть, что Entity Framework - это наихудший путь с точки зрения скорости запросов.

Method                             Duration    Remarks
Hand coded (using a SqlDataReader) 47ms
Dapper ExecuteMapperQuery<Post>    49ms
ServiceStack.OrmLite (QueryById)   50ms
PetaPoco                           52ms        Can be faster
BLToolkit                          80ms
SubSonic CodingHorror              107ms
NHibernate SQL                     104ms
Linq 2 SQL ExecuteQuery            181ms
Entity framework ExecuteStoreQuery 631ms
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...