如何對 Select N+1效能地雷進行測試 - 使用Entity Framework

  • 2642
  • 0
  • 2016-04-21

目前,越來越多人選擇將系統建置在雲端的環境上,已取得較佳的水平擴展來應付高流量的情境。然而,在雲端的環境下AP Server很容易達成水平擴展,但是在資料庫的部分,卻還是還難實現水平擴展。其原因有,資料同步的即時性以及資料庫資源的昂貴,這兩項限制,讓我們不得不小心地使用資料庫資源。但是,在目前廣泛使用ORM Framework的情況下,工程師很容易不注意踩到ORM的效能地雷,其中一項就是著名的 "Select N+1"。這是一項既普遍又嚴重的地雷,當 "Select N+1"發生的時候,就等同於系統在DDOS系統自己的資料庫,造成效能不彰即費用增加。那這麼嚴重的問題該如何預防呢?很簡單,寫個測試來預防 "Select N+1"不就好了嗎。

...繼續閱讀 »