Locking

Teradata:選擇沒有鎖定的表

  • January 2, 2017

據我了解,從 Teradata 中的表中選擇時,預設情況下該表是鎖定的。我想做一個簡單的select * from table不鎖定表。意思是,我想做一個選擇並允許其他使用者從同一個表中選擇,而不必等待我的選擇結束。

我知道我可以使用LOCKING修飾符降級選擇鎖,如下所示:

locking table my_table for access select * from my_table

但這將允許我的操作不等待鎖定。據我了解,它仍然會鎖定表,因此其他操作將不得不等待鎖定。

如果那些其他使用者只需要從該表中選擇,則您和其他會話都不必添加LOCKING修飾符。

預設情況下,一個 Select 應用一個READ鎖,它不會阻止其他 Select,只有 INSERT/UPDATD/DELETE 和 DDL 被阻止。

如果您希望其他會話能夠修改您應該使用LOCK ROW ACCESS允許臟讀的行,即第二個會話可能會在您閱讀時修改數據。

Teradata 支持四種標準 SQL 事務隔離級別中的兩種,即最少和最嚴格的:

Read Uncommited -> ACCESS LOCK
Read Commited
Repeatable Read
Serializable -> READ LOCK

Teradata 15.10 實現了一個名為Load Isolation的新功能,它添加了一種Read Commited

引用自:https://dba.stackexchange.com/questions/159750