我正在嘗試創建一個asp.net mvc web應用程序,有些頁面需要在「實時」顯示數據,這個數據在sql server數據庫上,數據是總是改變 我在sql server中創建了一個存儲過程,我在我的控制器中使用實體框架linq將此過程調用並使用ajax發送結果到瀏覽器 我使用outputcashing最小化了存儲過程的執行次數 同一個控制器有多個方法使用相同的存儲過程,每個方法執行相同的過程, 如何改善我的應用程序的性能, 有沒有辦法對所有控制器執行一次存儲過程?Asp.net MVC實時應用程序性能
這是我控制我的目標是,如果你的服務器的Web場(多臺服務器),那麼你可以緩存在Asp.net緩存中的數據是不是儘量少用數據庫
[OutputCache(Duration = 20, VaryByParam = "*")]
public class JobsETLController : Controller
{
private ETL_REP_MAUIEntities db = new ETL_REP_MAUIEntities();
public ObjectResult<BIOGetETLJobs_Result> ETLJobs;
public JobsETLController()
{
ETLJobs =db.BIOGetETLJobs();
}
public ActionResult Indexp()
{
var y = from xx in ETLJobs
where xx.etat!="Completed"
orderby xx.etat ascending
select xx;
return PartialView(y);
}
public ActionResult IndexpAll()
{
var y = from xx in ETLJobs
where xx.etat == "Completed"
select xx;
return PartialView(y);
}
我的應用程序檢測到數據庫中某些表的更改並通知用戶,這些表的內容在不斷變化 – user3489866
而不是使用輪詢,請考慮使用類似websockets的「推送」模型可以爲您提供的。你的應用程序可以設置一個SqlDependency。只要您正在監控的數據庫查詢發生變化,就會通知您的應用程序,並且您可以使用SignalR通知您的客戶... http://techbrij.com/database-change-notifications-asp-net-signalr- sqldependency –
謝謝,我只需要每5分鐘更新一次數據,所以它不是真正的實時,但問題是同一個控制器多次使用存儲過程, – user3489866