當前位置:首頁 » 編程語言 » sql為什麼使用事務
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql為什麼使用事務

發布時間: 2023-06-09 00:15:43

『壹』 sql中 事務的作用 什麼情況下要用事務 需要什麼條件

什麼是事務:事務是一個不可分割的工作邏輯單元,在資料庫系統上執行並發操作時事務是做為最小的控制單元來使用的。他包含的所有資料庫操作命令作為一個整體一起向系提交或撤消,這一組資料庫操作命令要麼都執行,要麼都不執行。

簡單例子銀行轉帳,如果甲把錢匯出去了,但是銀行發生了點問題,錢沒有匯到乙的錢包里,那錢怎麼辦。
這個時候如果用上事務,錢就會回滾到甲,一個減少,一個增加,要麼執行,要麼不執行

『貳』 使用事務為什麼會使sql得到優化

1. 在長時間運行的查詢和短查詢中使用事務

如果預期有一個長時間運行的查詢,並且有大量的數據輸出時,開發者就應該在BEGIN TRAN 和END TRAN之間使用事務。

這樣事務會在緩沖區緩存為獨立事務,並會被分配特定內存,以此來提高處理速度。

2. 不要使用SELECT *

如果使用SELECT * 來選擇表中的所有記錄,那麼一些不必要的記錄也被讀取、緩存,增加了磁碟的I/O和內存消耗。

3. 避免在WHERE子句中使用顯式或隱式函數,比如Convert ()

4. 避免在觸發器中執行長時間的操作

5. 適當使用臨時表和表變數

當結果集較小的時候,請盡量使用表變數;當結果集相當大時,使用臨時表。

6. 使用連接(JOIN)代替子查詢(Sub-Queries)

子查詢通常作為內聯代碼來使用,而連接(JOIN)則作為表來使用,這樣速度會更快。所以,應盡量避免在連接中使用子查詢。

7. 連接條件中表的順序

在連接條件中,應盡量首先使用較小的表,然後逐步使用較大的表。

8. 循環優化

如果操作在循環內部沒有任何影響,那麼應盡量將操作放到循環外面,這樣可以減少不必要的重復工作。因為,SQL Server優化器不會自動識別這種低效率的代碼,更不會自動優化(其他一些語言的編譯器可以)。

9. 參數探測

不要在正執行的SP(存儲過程)中使用SP參數,這樣會導致參數探測(Parameter Sniffing)。應該在聲明和設置後再使用SP參數。由於這個原因,SP的行為在每次運行期間都不相同。

10. 當使用條件語句時,可以使用Index(索引)Hint(提示)

比如在SQL Server 2008中,可以使用Index hint,也可以使用fixed plan hint強制在查詢中使用hint,以提高運行速度。

『叄』 資料庫為什麼要用事務

所謂事務是用戶定義的一個資料庫操作序列,這些操作要麼全做要麼全不做,是一個不可分割的工作單位。例如,在關系資料庫中,一個事務可以是一條SQL語句、一組SQL語句或整個程序。

簡單舉個例子就是你要同時修改資料庫中兩個不同表的時候,如果它們不是一個事務的話,當第一個表修改完,可是第二表改修出現了異常而沒能修改的情況下,就只有第二個表回到未修改之前的狀態,而第一個表已經被修改完畢。

而當你把它們設定為一個事務的時候,當第一個表修改完,可是第二表改修出現了異常而沒能修改的情況下,第一個表和第二個表都要回到未修改的狀態!這就是所謂的事務回滾。例如,在將資金從一個帳戶轉移到另一個帳戶的銀行應用中,一個帳戶將一定的金額貸記到一個資料庫表中,同時另一個帳戶將相同的金額借記到另一個資料庫表中。由於計算機可能會因停電、網路中斷等而出現故障,因此有可能更新了一個表中的行,但沒有更新另一個表中的行。如果資料庫支持事務,則可以將資料庫操作組成一個事務,以防止因這些事件而使資料庫出現不一致。如果事務中的某個點發生故障,則所有更新都可以回滾到事務開始之前的狀態。如果沒有發生故障,則通過以完成狀態提交事務來完成更新。
在 ADO.NET 中,可以使用 Connection 和 Transaction 對象來控制事務。可以使用 Connection.BeginTransaction 啟動本地事務。一旦開始一個事務,就可以使用 Command 對象的 Transaction 屬性在該事務中登記命令。然後,可以根據事務組件的成功或失敗情況,使用 Transaction 對象提交或回滾在數據源中所做的修改。

『肆』 sql中什麼是事務啊

事務(Transaction),一般是指要做的或所做的事情。在計算機術語中是指訪問並可能更新資料庫中各種數據項的一個程序執行單元(unit)。

事務通常由高級資料庫操縱語言或編程語言(如SQL,C++或Java)書寫的用戶程序的執行所引起,並用形如begin transaction和end transaction語句(或函數調用)來界定。

(4)sql為什麼使用事務擴展閱讀

事務類型

(1)手動事務

手動事務允許顯式處理若干過程,這些過程包括:開始事務、控制事務邊界內的每個連接和資源登記、確定事務結果(提交或中止)以及結束事務。

(2)自動事務

.NET 頁、XML Web services方法或 .NET Framework 類一旦被標記為參與事務,它們將自動在事務范圍內執行。您可以通過在頁、XML Web services 方法或類中設置一個事務屬性值來控制對象的事務行為。

『伍』 SQL中為什麼要使用事務

事務是單個的工作單元。如果某一事務成功,則在該事務中進行的所有數據修改均會提交,成為資料庫中的永久組成部分。如果事務遇到錯誤且必須取消或回滾,則所有數據修改均被清除。

事務使用,可以提供一個機制,防止在執行過程中出錯而之前正確的sql有影響了資料庫的情況出現