.net事務處理并發(fā)性處理的意義(此文僅適合基礎者瀏覽)
發(fā)表時間:2024-02-21 來源:明輝站整理相關軟件相關文章人氣:
[摘要]在一個健壯的企業(yè)級應用程序中,對事務的處理極其重要。如果您正準備開發(fā)企業(yè)級應用程序的話,您最好多了解一些關于這方面的內(nèi)容;當然也希望我的文章對您有所幫助,那么實際解決方案中有哪些地方需要用到事務呢? 為了數(shù)據(jù)庫中每個企業(yè)實體數(shù)據(jù)的完整型,我們通常會在設計數(shù)據(jù)庫時定義一系列主外鍵及一...
在一個健壯的企業(yè)級應用程序中,對事務的處理極其重要。如果您正準備開發(fā)企業(yè)級應用程序的話,您最好多了解
一些關于這方面的內(nèi)容;當然也希望我的文章對您有所幫助,那么實際解決方案中有哪些地方需要用到事務呢?
為了數(shù)據(jù)庫中每個企業(yè)實體數(shù)據(jù)的完整型,我們通常會在設計數(shù)據(jù)庫時定義一系列主外鍵及一些規(guī)則等;其中主外鍵
的設定最重要,理論上說靠這些約束是可以保證單個數(shù)據(jù)實體的完整型了,似乎事務用不用已無關緊要了,可事實上這樣
程序是缺乏健壯性的,為此我們必須視數(shù)據(jù)庫中定義的種種約束為一種保險,而為了整個解決方案的可靠性、優(yōu)越性我們
必須再使用事務。
如果您的程序會遇到以下情況時,你最好應考慮事務:
一. (典型)在寫入一條有定單型數(shù)據(jù)時(主從關系)您最好在業(yè)務邏輯層或數(shù)據(jù)訪問層使用事務
方法1:使用OleDbTransaction
方法2:使用COM+事務(怕麻煩用方法1)
二. 在寫入一條有外鍵約束的數(shù)據(jù)時,您最好這樣處理
1. BeginTran();//加鎖
2. 判斷外鍵關聯(lián)數(shù)據(jù)是否存在
3. 根據(jù)第二步進行決定是否寫入數(shù)據(jù)
4. Commit() ; 或 RollBack();
......
在這里我不想多舉例,再就上述第2種情況說一點自己的看法:
有些人認為這種做法似乎多余,對,看上去是;但這樣做后你的程序很健壯、可讀性好并且可以大大
降低數(shù)據(jù)庫端瓶頸;(未完待續(xù))