首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在…中插入DB2选择锁

在…中插入DB2选择锁
EN

Stack Overflow用户
提问于 2018-08-03 13:56:26
回答 2查看 1.3K关注 0票数 0

有一个应用程序Application1正在发出我们在Prod中使用的insert语句

代码语言:javascript
复制
    INSERT INTO Table1
    (SELECT FROM Table2
    WHERE conditions are true)

还有另一个对Table2执行select查询的应用程序Apllication2

代码语言:javascript
复制
    SELECT FROM Table2
    WHERE conditions are true
    with ur

现在,每当insert查询运行时,第二个查询运行得非常慢,有时读取超时。

我试图找出Table2是否因为是insert语句的一部分而被锁定,但我找不到任何具体的证据。

我确实找到了给MySQL How to improve INSERT INTO ... SELECT locking behavior的东西

但对DB2来说什么都没有。

有没有人能帮我解释一下慢的原因?

EN

回答 2

Stack Overflow用户

发布于 2018-08-03 19:31:11

insert语句几乎肯定会对table2发出锁。但是,如果您的第二条语句具有with UR,那么它很可能可以避免这些锁。如果您有一个测试系统,您可以尝试将注册表变量DB2_WORKLOAD设置为WAS (这将设置所有这些变量:https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.admin.perf.doc/doc/c0011218.html)。

我建议使用dsmtopMONREPORT.DBSUMMARY (https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.apdv.sqlpl.doc/doc/r0056370.html)来确定只读查询实际花费的时间。

票数 2
EN

Stack Overflow用户

发布于 2018-08-03 14:40:34

您可以使用第二个查询,如下所示: SELECT FROM Table2 WITH(NOLOCK) WHERE条件为真

注意:但是它会给你脏读。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51666112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档