簡體   English   中英

從SQL Server(或SQL Azure)數據庫檢索大量數據的最佳方法

[英]The best way to retrieve large amounts of data from a SQL Server (or SQL Azure) database

我有一個有4000萬行的表。 我正在尋找通過API將數據檢索到JSON的最佳技術。

性能至關重要!

我認為,最好的方法是使用ADO.NET和SqlDataReader 但是,我想使用自動映射(如EF)。

您能告訴我這是檢索大量數據的最佳方法嗎? (2、3 ... 4000萬行)

也嘗試linq2db( https://github.com/linq2db/linq2db )。 像Dapper一樣,linq2db是一個非常輕量級的微型ORM,但也支持linq查詢以進行過濾,投影等。

沒錯,如果您試圖將數據從SQL Server導入C#庫中,那么您將獲得比原始ADO.NET更快的速度。

為了獲得簡單的關系->對象映射,但又避免了使用更大的,功能更全的ORM(例如EF和NH)所付出的代價,我發現Dapper的效果很好( https://github.com/StackExchange/dapper-點網 )。 在我的用例中,它比NH更快,非常易於使用,並且您可以找到想要的映射。

過去已經完成了一些基准測試,以查看各種ORM的獲取性能,這些基准可以使您大致了解所查看的內容(例如: http ://weblogs.asp.net/fbouma/fetch- 各種網絡性能或數據訪問框架的性能 ,這並不奇怪地發現原始ADO.NET最快-盡管它來自2013年,這在互聯網時代還是很古老的。

您可以相當快地對數據和環境進行自己的類似比較,以了解可能適合您的情況的情況。

另外,從另一個角度進行處理-數據多久更改一次? 是否需要每次都從SQL Server中退出? 您可能能夠將其加載到內存中的緩存中,在該緩存中,檢索比從SQL Server查詢更快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM