编写有效的事条指导原则
生活随笔
收集整理的這篇文章主要介紹了
编写有效的事条指导原则
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
以下內(nèi)容純當(dāng)做筆記,來自SQL SERVER 2005 聯(lián)機(jī)叢書。
?
以下是編寫有效事務(wù)的指導(dǎo)原則:
- 不要在事務(wù)處理期間要求用戶輸入。
在事務(wù)啟動之前,獲得所有需要的用戶輸入。如果在事務(wù)處理期間還需要其他用戶輸入,則回滾當(dāng)前事務(wù),并在提供了用戶輸入之后重新啟動該事務(wù)。即使用戶立即響應(yīng),作為人,其反應(yīng)時間也要比計(jì)算機(jī)慢得多。事務(wù)占用的所有資源都要保留相當(dāng)長的時間,這有可能會造成阻塞問題。如果用戶沒有響應(yīng),事務(wù)仍然會保持活動狀態(tài),從而鎖定關(guān)鍵資源直到用戶響應(yīng)為止,但是用戶可能會幾分鐘甚至幾個小時都不響應(yīng)。 - 在瀏覽數(shù)據(jù)時,盡量不要打開事務(wù)。
在所有預(yù)備的數(shù)據(jù)分析完成之前,不應(yīng)啟動事務(wù)。 - 盡可能使事務(wù)保持簡短。
在知道要進(jìn)行的修改之后,啟動事務(wù),執(zhí)行修改語句,然后立即提交或回滾。只有在需要時才打開事務(wù)。 - 若要減少阻塞,請考慮針對只讀查詢使用基于行版本控制的隔離級別。有關(guān)詳細(xì)信息,請參閱。
- 靈活地使用更低的事務(wù)隔離級別。
可以很容易地編寫出許多使用只讀事務(wù)隔離級別的應(yīng)用程序。并不是所有事務(wù)都要求可序列化的事務(wù)隔離級別。 - 靈活地使用更低的游標(biāo)并發(fā)選項(xiàng),例如開放式并發(fā)選項(xiàng)。
在并發(fā)更新的可能性很小的系統(tǒng)中,處理“別人在您讀取數(shù)據(jù)后更改了數(shù)據(jù)”的偶然錯誤的開銷要比在讀取數(shù)據(jù)時始終鎖定行的開銷小得多。 - 在事務(wù)中盡量使訪問的數(shù)據(jù)量最小。
這樣可以減少鎖定的行數(shù),從而減少事務(wù)之間的爭奪。
避免并發(fā)問題和資源問題
為了防止并發(fā)問題和資源問題,應(yīng)小心管理隱式事務(wù)。使用隱式事務(wù)時,COMMIT 或 ROLLBACK 后的下一個 Transact-SQL 語句會自動啟動一個新事務(wù)。這可能會在應(yīng)用程序?yàn)g覽數(shù)據(jù)時(甚至在需要用戶輸入時)打開一個新事務(wù)。在完成保護(hù)數(shù)據(jù)修改所需的最后一個事務(wù)之后,應(yīng)關(guān)閉隱性事務(wù),直到再次需要使用事務(wù)來保護(hù)數(shù)據(jù)修改。此過程使 SQL Server 數(shù)據(jù)庫引擎 能夠在應(yīng)用程序?yàn)g覽數(shù)據(jù)以及獲取用戶輸入時使用自動提交模式。
另外,啟用快照隔離級別后,盡管新事務(wù)不會控制鎖,但是長時間運(yùn)行的事務(wù)將阻止從 tempdb 中刪除舊版本。
轉(zhuǎn)載于:https://www.cnblogs.com/ision/archive/2009/03/21/1418622.html
總結(jié)
以上是生活随笔為你收集整理的编写有效的事条指导原则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 跌宕起伏之windows 7安装
- 下一篇: C#3.0新特性小结(2)