我有一个场景,其中必须几乎同时创建和运行两个预定作业。并且代码几乎不同,但只有一个表(Master_Data1)在选择查询中是共同的,如下所示。我主要担心的是,如果这可能会产生任何锁定条件。我们必须在生产中运行此代码,并且视图具有数百万条记录。请帮助我理解两个不同会话访问的select中的公共表是否可以创建锁。
JOB1:
INSERT INTO Result_Table1
SELECT * FROM Master_Data1 md LEFT JOIN vw_External_1 vw;
JOB2:
INSERT INTO Result_Table2
SELECT * FROM Master_Data1 md LEFT JOIN vw_External_2 vw;
答案 0 :(得分:2)
由于您只在Master_Data1表上运行SELECT语句,因此不应存在锁定问题。
有关锁定和并发的更多信息,请阅读以下Oracle文档。
https://docs.oracle.com/cd/E11882_01/server.112/e40540/consist.htm#CNCPT621 http://docs.oracle.com/cd/E11882_01/server.112/e41084/ap_locks001.htm#SQLRF55502