【发布时间】:2021-05-04 12:22:43
【问题描述】:
我有一个供多个下游用户使用的数据仓库。他们从红移表中读取数据。当他们读取数据时,会在表上强制执行共享锁。那个时候,我的日常工作应该写在表上,因为在共享锁被清除之前,它不能放排他锁。
理想情况下,我的写入作业应优先于任何其他读取作业。我可以通过某种方式强制执行吗?
【问题讨论】:
标签: sql locking amazon-redshift data-warehouse database-locking
我有一个供多个下游用户使用的数据仓库。他们从红移表中读取数据。当他们读取数据时,会在表上强制执行共享锁。那个时候,我的日常工作应该写在表上,因为在共享锁被清除之前,它不能放排他锁。
理想情况下,我的写入作业应优先于任何其他读取作业。我可以通过某种方式强制执行吗?
【问题讨论】:
标签: sql locking amazon-redshift data-warehouse database-locking
通常这是由您的更新过程完成的,不需要排他锁或管理对锁的需求,因此更新过程不会被阻塞。
您能否描述一下您的更新过程以及哪些步骤需要独占锁?
当事情向前发展时,查看导致它们的锁和语句。当这些读取会话作用于它们开始使用的数据版本时,重新处理这些部分应该可以让您保持更新。
同样重要的是,不要让用户交易连续几天徘徊。当交互式会话在事务中保持打开状态时,可能会发生这种情况。这还可以防止由于某些会话看到非常旧的数据版本而导致的错误。
【讨论】: