TERADATA解決鎖表的方法

TERADATA的鎖表問題一直很頭疼,經常早上過來發現任務都沒跑,檢查發現中間某張表在凌晨生成的時候被某人的查詢SQL給鎖了,導致後續任務都沒有跑,於是查找TD那一堆英文文檔,發現一個變相的解決辦法,通過建立視圖:

create view etl.Etl_Monitor_View

as locking table etl.Etl_Monitor for access

select * from etl.Etl_Monitor

當然有利也有弊,以前正在insert表的時候如果有任務查詢這張表,會鎖表,通過監控來發現問題,使用這個視圖以後就不再鎖表了,而是select出來0條記錄,導致結果異常。

 

以下SQL這樣會鎖表:

-------------------------------------------------------------------------------

>Inset into TABLE_1 select * from TABLE_2

>Select * form TABLE_1

-------------------------------------------------------------------------------

 

以下SQL這樣不會鎖表:

---------------------------------------------------------------------------------

>locking table TABLE_1 for access

  Inset into TABLE_1

>Select * form TABLE_1

---------------------------------------------------------------------------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章