Heap 資料表如果資料表沒有Clustered Index那此表就會是Heap資料表 Heap資料表有個特性是Insert資料快比較快,因為插入資料不需要考慮排序。 適合使用在Log資料表、Event資料表、稽核資料表….一直新增資料,但比較少查詢或更新的表 一般來說Heap資料表很少見,因為都 ...
資料庫新增欄造成Page split
前言:使用DB新增欄位一般很快就可以執行完畢,但最近我們在prod新增一個bit欄位卻需要跑快45分鐘… 經後面追查找到原因才有本篇文章. 問題重現下面語法會建立兩個Table. Test:新增10,000,000筆Sample Data TestSplit:新增1,000,000筆Sample ...
Reflection在進化-淺談Expression表達式
前言稍微有經驗的.net工程師一定聽過或使用過Reflection,Reflection雖然好用(能動態處理很多事情)但對於效能會有些影響. 我能否擁有Reflection的動態彈性且兼顧效能呢? 有:就是我們這次要介紹的Expression. Expression vs Reflection pe ...
Docker深入淺出(一)
前言:docker透過指令能快速建立相同執行環境並比起VM減少電腦資源消耗. 依照上面優點這就是為什麼docker可以在短時間內快速串紅. 上圖來源《Docker —— 從入門到實踐》正體中文版 我在網路上找到很棒一個Docker操作流程圖,概括Docker操作時會用到的指令和動作關係. 因為 ...
快速建立連接 MSSQL By Docker + VSCode
前言如果我們在Local或測試環境需要建立一個連接MSSQL環境,傳統需要安裝MSSQL和SSMS 但現在有一個更快速輕便方法,就是使用Docker建立MSSQL環境 + VSCode Extension充當SSMS. 安裝時間不僅更快且需要花的空間更小,且可以在Linux使用 Docker建立MS ...
資料庫壓測好工具-SQLQueryStress
前文隨著業務量增長,資料庫的複雜程度也會成正比增長 這裡跟大家分享一個好用壓測資料庫工具SqlQueryStress 在Dev可以模擬高併發時產生的問題,下面會分享我之前Prod遇到問題並解決問題過程 詳細資訊可以看SQLServer-Merge-condition-problem SQLQuery ...
AOP Lock Architecture
前言:在系統中多少會遇到某些交易間需要互斥(不然容易造成DeadLock). 在我們當前系統中有許多動作間需要互斥,不然會有DeadLock問題 藉由已經分析DeadLock Report後,我開始構思如何讓建立Lock可以變得更容易且好理解. 所以就建構出此Lock架構. 如何在此框架使用Lock ...
.Net 三種區塊記憶體位置 Heap , Stack , Globle??
前文: 寫.Net 寫一陣子了 突然覺得一些基本功好重要 之前都沒發現原來.Net 有三種區塊的記憶體空間 這三個區域都有他們各自的含義…. </div> .Net 有三種區塊的記憶體空間 Globle: 全域記憶體 主要存放全域變數或宣告為static的靜態變數 Heap : 存 ...
淺談SqlServer Lock(一)
Agenda 前文 兩種圍度的Lock Lock範圍 Lock類型 Update Lock 存在的意義 Lock 互斥 Demo Locking Optimization NoLock的隱憂 Read Uncommitted 髒讀取 小結前文 之前有跟大家介紹資料庫交易中的ACID ...
JOIN範圍條件Index優化
前文JOIN條件範圍時,執行計畫預估值容易不準確,這也間接導致查詢效能不好. 就算有建立Index也會遇到上述問題 假如我們想要提升JOIN條件範圍效能並讓Index可以發揮最大最用可以怎麼做? 就讓我利用一個範例來跟大家分享. 案例此範例有使用到三張表 Product表:擁有1-10編號產品 ...