[英]Handling large volume of data using Web API
我們有一個運行時間很長的數據庫查詢,該查詢將填充一個臨時表(我們不應更改此行為),該表將產生6到1千萬條記錄,大約4到6 GB數據。
我需要使用.NET Web API從SQL DB提取數據,並且該API托管在IIS上。 當請求從客戶端發送到API時,查詢將基於不同聯接表中的數據量運行至少5分鍾,並填充臨時表。 然后,API必須從數據庫臨時表讀取數據並將其發送給客戶端。
在不阻止客戶端,不丟失數據庫臨時表,不阻止IIS的情況下,我們如何實現這一要求?
只是在想,如果我使用異步API,我將能夠實現這一目標嗎?
您需要考慮一些事情並且可以做一些事情。
如果您是通過API調用開始查詢執行的,那么如果您同時獲得對該端點的10個調用,會發生什么情況? 死API,這就是要發生的事情。
您可能能夠找到執行查詢的其他觸發器,因此可以每天(例如)每天一次或每4小時運行一次此查詢,然后將結果存儲在永久表中。 然后,API作業只能查看該表,而無需等待任何操作並返回一些數據。
您可以做的第二件事是只返回顯示屏幕所需的數據。 您不會一口氣顯示4-6 GB的數據量,我懷疑那里有一些分頁,並且您可以稍微調整一下代碼,僅一次返回一頁數據。
您沒有說您擁有什么樣的數據,但是如果它不需要經常運行該查詢,那么您肯定可以進行一些改進。
<----報告澄清后編輯---->
好的,因為這是報告,所以這是另一個想法。
目的是確保API本身不會受到壓力,而這需要快速響應。 讓API接收帶有所需參數的請求。 將實際的報告生成活動卸載到另一個服務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.