課程說明
@搞懂資料庫交易處理原則,避免誤用鎖定策略
OLTP系統中,我們希望所有交易資料要正確且處理快速,例如客戶款項(金額)處理、產品庫存或訂單服務...等,
這些交易資料通常會包含時間維度、一些數值資料和其他參考資料。
SQL Server在處理交易過程中,由於強一致性會讓資料保持有效狀態,大部分交易不會處於半完成狀態,
不可部分完成性表示整個交易無論成功或失敗都一律是整體的工作單位,
這也是傳統RDBMS處理交易的不可部分完成和強一致性特性(即ACID),
以確保企業中所有資料對於所有使用者和應用系統而言絕對是一致的,也省下且避免開發人員需要 Data Patching 時間,
但這可能衍生出長時間封鎖和過多死鎖問題。
RDBMS應用深入各企業,資料處理也無所不在,企業產品面對大量使用者資料操作,產品保證每位使用者資料的正確性和一致性是基本前提,但如果企業業務量成長快速,產品又該如何保證資料處理效能?資料更新是所有開發人員都會接觸到的基本功,但有時更新資料會發生Deadlock,造成嚴重的問題。這堂課中,我將介紹入如何讓你的交易處理不在頻繁拋exception或長時間等待SQL Server回應!
@一次解決效能低落、Deadlock、Long blocked、資料更新不一致!
實務上,長時間封鎖和過多死鎖絕對是影響OLTP系統效能的重要殺手,這是除CPU、RAM和IO外的另一個主要效能問題,
同時,我認為這更是設計問題,非SQL Server本身問題,當然,我認為絕對要積極解決該問題。
由於資料庫是服務多人的,基本上現在的系統也都是多使用者操作,而這就衍生出併發問題,
併發問題主要是資源競爭,資源競爭所引起的主要兩個問題就是封鎖和資料不一致性,常見就是一個交易修改結果,意外被另一個交易所覆蓋,
我常看到開發人員為了保證交易資料正確性和一致性,便透過高層級交易隔離來處理交易,
這下場伴隨而來的就是長時間封鎖和死鎖問題,又或是開發人員不了解SQL Server鎖定行為,誤用鎖定策略,
不僅資料喪失有效性且連帶影響OLTP系統效能,可說賠了夫人又折兵。
上完這堂課,你將能夠學會
- 利用簡單技巧,大幅改善現有系統緩慢的查詢。
- 加強系統查詢效能,減緩公司投入硬體資源的費用。
- 瞭解影響資料庫效能的原因,迅速判斷問題並對症下藥。
- 獲取鎖定、死鎖相關知識和改善方法。
- 獲取交易隔離層級相關知識。
- 獲取交易處理有效方法,在併發情況下。
- 獲取In-Memory OLTP交易處理知識和方法。降低系統Deadlock頻率。
- 降低系統Long Blocked情況。
- 提高資料更新處理效能。
第四部曲我將介紹如何有效率進行交易處理,讓我們的OLTP系統在高併發交易處理情況下,交易資料不僅有效正確和不可部分完成性特性,
同時還可避免長時間封鎖和最小化死鎖問題,同時我也會對鎖定和交易隔離層級進行深入淺出介紹,
因為,我看到大部分開發人員或DBA對此觀念、行為和特性相當薄弱。
就我個人認為,沒有任何一個Application是完美的,SQL Server也不可能總是做出正確決定,
所以出色的開發人員或DBA都應該理解鎖定行為、交易隔離層級和併發模式,並且在進行資料庫設計和開發時,就需要考慮它們所帶來的問題,
該課程內容是由根源出發,無論使用雲端或地端的SQL Server皆可套用。
您會學到
- 獲取鎖定、死鎖相關知識和改善方法
- 獲取交易隔離層級相關知識
- 獲取交易處理有效方法,在併發情況下
- 獲取In-Memory OLTP交易處理知識和方法
此課程適合哪些人
- 本課程不適合新手,這是中高階效能調校課程,內容是我個人業界經歷分享。
- 適合中高階DBA。
- 適合中高階開發人員。
- 適合SQL Server愛好者。
- 適合對SQL Server效能調校有興趣者。
- 適合立志朝高階SQL Server DBA、SQL Server Developer或資料庫架構師的專業人員。
要求
- 會使用 SSMS 工具撰寫交易。
- 已有SQL Server和Windows系統基礎和觀念。
- 會使用交易隔離層級行為和實際應用
- 會使用鎖定行為和實際應用
- 使用SQL Server 2017
觀看限制
- 不限次數、時間
- 完整終身存取權
課程內容
- 4 個章節 • 22 堂講座 • 總長度:4 小時 31 分
- 18 個可下載的資源
完整終身存取權
- 鎖的基本認識 (19:29)
- 鎖的相容性和擴大 (30:17)
- 最小化死鎖和理解Report (34:05)
- 案例分享-意想不到的deadlock (18:05)
- 悲慘世界中的交易 (3:24)
- 案例分享-NoLock萬能嗎? (7:17)
- 案例分享-說好的Read committed呢? (7:00)
- 案例分享-Insert也有事 (8:14)
- 烏托邦世界中的交易 (20:03)
- In-Memory OLTP世界中的交易 (11:00)
- 不可不知的鎖定策略 (7:55)
- 案例分享-常見的DeadLock (7:31)
- 案例分享-改善高併發交易處理效能和資料一致性 (10:14)
- 案例分享-SQL Server突然無法連線 (8:22)
- 交易效率加速器 (6:08)
- Latch能吃嗎 (13:34)