[廚餘回收] 在半夜偷偷吃掉 CPU 資源的暗夜怪客 - MsMpEng.exe(Windows Defender)

前些日子開了一台新的 SQL Server,最近從監控當中發現凌晨 02:10 ~ 02:30 之間 CPU 被拉高,日復一日都是相同的時間點。

看起來吃了不少 CPU 資源,由於這段時間嚴格來講並不算是服務的離峰時間,還是希望將珍貴的 CPU 資源留給服務,所以必須查出來到底是誰吃掉了 CPU 的資源?

...繼續閱讀 »

[料理佳餚] SQL Server 的叢集索引(Clustered Index)欄位不一定都要是主鍵(Primary Key)

我個人認為 SQL Server 預設拿主鍵(Primary Key)來當叢集索引(Clustered Index)欄位這件事情,應該要被重新考慮,以目的來講,主鍵與叢集索引的關係其實並不大,主鍵的目的是確保資料是唯一且正確的,而叢集索引的目的是提升查詢效率,所以在這點上,我覺得在資料表一個開始設計的時候,預設是分開考量的會比較恰當。

...繼續閱讀 »

[料理佳餚] Dapper 用起來很友善,但是預設的參數型別對執行計劃不太友善。

  • 9437
  • 0
  • C#
  • 2022-12-22

用過 Dapper 的朋友應該對它是愛不釋手,最近在一個對效能敏感的系統上 tune SQL 查詢語句時,發現到 SQL 參數型別的不同及使不使用 SQL 參數,對執行計劃的選擇影響甚大,相同的查詢條件及結果,只因改了參數的型別,執行計劃就跟著改變,查詢成本也跟著拉高。

...繼續閱讀 »

[料理佳餚] C# 泛型類別條件約束 where 無法約束帶有參數的建構式怎麼辦?

  • 2710
  • 0
  • C#
  • 2019-07-29

公司內的一個系統的開發風格轉變,Data Model 必須設計成 Immutable(不可變)的類別,其中一部分會被用在泛型上,由於 Immutable 類別是不能有無參數建構式的,所以被用在泛型的時候,它就不能用 where 進行 new() 的條件約束,沒辦法做 new() 的條件約束,就無法呼叫泛型類別的建構式來產生 Instance,著實困擾。

...繼續閱讀 »

[創意料理] 用 ASP.NET MVC 的 Display Mode 讓 View 依使用者角色來拆分以減少邏輯分支

先前有寫過一篇文章 - 將 ASP.NET MVC 的 View 依使用者角色來拆分可以減少邏輯分支,在留言中 demo 哥有提到用 Display Mode 也可以漂亮地解決,於是我就試著把這樣的需求用 Display Mode 來實作,實作之後我必須說,程式碼真的可以少寫一些。

...繼續閱讀 »

[料理佳餚] 概念性地了解一下 Akka.NET 和 Actor Model 以及響應式系統(Reactive System)

隨著業務的增長,應用程式要處理的需求愈來愈多,也愈來愈細,需求間的依賴關係也會變得複雜,當使用者也隨之增加的時候,應用程式也需要進行拆分及擴展,因此我們需要一種設計方法,來引導我們針對高併發、分布式、需求多又細又複雜的應用程式來進行設計。

...繼續閱讀 »