我有一张有4000万行的表。我正在寻找通过API将这些数据检索到JSON的最佳技术。
表现至关重要!
我认为,最好的方法是使用ADO.NET和SqlDataReader
。但是,我想使用自动化(如EF)。
你能告诉我这是检索大量数据的最佳方法吗? (2,3,...... 4000万行)
答案 0 :(得分:2)
还试一试linq2db(https://github.com/linq2db/linq2db)。像Dapper一样,linq2db是一个非常轻量级的微型ORM,但也支持linq查询过滤,投影等。
答案 1 :(得分:1)
如果你正试图将数据从SQL Server转移到C#库中,那么你就不会比原始的ADO.NET更快。
为了获得简单的关系 - >对象映射,但是为了避免使用更大,更全功能的ORM(如EF和NH)支付的价格,我发现Dapper工作得非常好(https://github.com/StackExchange/dapper-dot-net) 。在我的使用案例中,它比NH更快,非常易于使用,并且您可以获得您正在寻找的映射。
过去有一些基准测试可以查看各种ORM'获取性能可以让您了解您可能正在查看的内容(例如:http://weblogs.asp.net/fbouma/fetch-performance-of-various-net-orm-data-access-frameworks,这并不奇怪地发现原始ADO.NET最快 - 尽管它来自2013年,这只是古老的互联网时代)。
您可以使用您的数据和环境快速进行类似的比较,以了解可能对您的情况有用的内容。
另外,从另一个角度来看 - 数据经常变化多少?是否每次都需要从SQL服务器出来?您可以将它加载到内存中的缓存中,其中检索比从SQL Server查询它更快。