資料庫系統概論06-查詢處理&連線處理&事務&活鎖&死鎖&兩段鎖協議
阿新 • • 發佈:2018-12-04
查詢處理
分成4個階段:查詢分析、查詢檢查、查詢優化、查詢執行
全表掃描演算法
索引掃描演算法(B+樹索引或hash索引):效率高
連線處理
巢狀迴圈演算法:按照資料塊讀入記憶體,分外層迴圈(表1),內層迴圈(表2)對比
排序-合併演算法:按連線相同屬性先排序表一,取第一個掃描表2連線
索引連線演算法:建立索引,查詢相應的元組
hash join演算法:把連線屬性作為hash碼,劃分階段(建立階段:建立hash表)、試探階段(連線階段)
事務
使用者定義的一個數據庫操作序列。要麼全做,要麼都不做。
BEGIN TRANSACTION;
COMMIT;
ROLLBACK;
活鎖
T1封鎖資料R,事務T2請求封鎖R,T2等待,T3請求封鎖R,T1釋放R封鎖之後批准T3請求,T2仍然等待....
T2永遠等待,這就是活鎖。
解決方法:先來先服務
死鎖
T1等待T2,T2等待T1,就是死鎖
解決方法:
(1)預防死鎖:一次封鎖法、順序封鎖法
(2)允許死鎖的發生,採取一定的手段定期診斷系統中有無死鎖,有就解除。超時法、等待圖法
兩段鎖協議
保證排程的可序列化,
事務分兩個階段:第一階段是獲得封鎖(擴充套件階段)、第二階段是釋放封鎖(收縮階段)
封鎖粒度:封鎖物件的大小