[SQL Server]partition table and In-memory table

partition table對資料維護的效率是一直吸引我的主因,

透過switch partition可說秒殺insert+delete操作,

不僅lock request少,且又可降低交易紀錄檔使用量,整體對我來說好處不少,

但以前經驗告訴我,partition table影響insert和update效能,

我想如果這部分能使用In-Memory table來接管的話那真是太美妙了,可惜In-Memory table並不支援partition,

但我們依然可以透過SQL2016來模擬partition,讓我們同時享有高效率的資料維護和高效能的交易處理。

...繼續閱讀 »

[C#]dynamic call VS direct call

以前我很早就被植入使用Reflection大部分效能都不好,所以應該要盡量避免,

但朋友昨天傳給我一篇文章指出現在的dynamic call不會有效能問題,

雖然我知道C#早已不是以前的吳下阿蒙了,但我還是覺得應該還是有效能上的差異,

所以我這裡簡單測試dynamic call 和 direct call兩者效能差異。

...繼續閱讀 »

[SQL Server]Do you make right way for benchmark in-memory OLTP

SQL2016大幅改善In-Memory OLTP效能,所以我在SQL2016花了很多時間研究、測試並閱讀相關whitepaper,

我也先告訴大家一件事,In-Memory table並非效能萬靈丹,

不要以為把disk-table轉換到in-memory table,現有系統交易效能就可突飛猛進,

而且真實世界要把disk table要轉換in-memory table也非那麼簡單(除非你的disk table layout真的很單純)。

...繼續閱讀 »

[SQL SERVER]How do you know what minimum size for shrink your tempdb

不建議頻繁執行檔案或資料庫壓縮,因為這些操作對效能有一定的影響

除非硬碟可用空間已經不足,這時先確認那個檔案的壓縮大小是最小的

我以前200GB的資料庫,tempdb 我只需使用18GB,500GB的資料庫也只需使用35GB,

當然這比例沒有一定,完全取決於你系統行為(寫TSQL和c#習慣要好)而定。

 

...繼續閱讀 »

[C#]遵守TSQL王道的TinyORM

  • 2974
  • 0
  • C#
  • 2017-05-24

使用過EF應該都知道所產生的TSQL一大長串(尤其新增一些累贅條件是我最討厭的),

而且執行順序可能非預期(單一包交易中有insert、update、select同table,更容易產生deadlock),

同時EF並無法產生SQL Server所內建高效率陳述式(如Merge),

這時TinyORM主推所產生的TSQL絕對簡單並更貼近SQL Server,

且改善Dapper一些缺點和效能。

ps:目前無法支援.NET Core

...繼續閱讀 »

[SQL SERVER]How to fast upgrade your datbase from SQL2008 R2 to SQL2016 SP1

真實世界,大部分企業無法接受Database停止服務太久時間,

一般的backup and restore雖然可以達到目的,但由於backup and restore過程中,

還是有資料的新增、修改或刪除持續發生,雖然資料庫restore完成,

可是無法避免人工進行補資料和確認資料一致性作業,

這時你才會知道Mirroring的好處

...繼續閱讀 »