Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql DB2插入…选择锁_Sql_Select_Insert_Db2_Locking - Fatal编程技术网

Sql DB2插入…选择锁

Sql DB2插入…选择锁,sql,select,insert,db2,locking,Sql,Select,Insert,Db2,Locking,有一个应用程序Application1正在发出我们在Prod中使用的insert语句 INSERT INTO Table1 (SELECT FROM Table2 WHERE conditions are true) 还有另一个应用程序Aplication2正在表2上执行select查询 SELECT FROM Table2 WHERE conditions are true with ur 现在,每当insert查询运行时,第二个查询运行得非

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

    INSERT INTO Table1
    (SELECT FROM Table2
    WHERE conditions are true)
还有另一个应用程序Aplication2正在表2上执行select查询

    SELECT FROM Table2
    WHERE conditions are true
    with ur
现在,每当insert查询运行时,第二个查询运行得非常慢,有时读取超时

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

我确实为MySQL找到了一些东西

但是对于DB2来说什么都没有


有人能帮我了解一下速度慢的原因吗?

您可以使用第二个查询,如下所示: 从表2中选择WITHNOLOCK 条件成立时


注意:但它会给您脏读。

您可以使用第二个查询,如下所示: 从表2中选择WITHNOLOCK 条件成立时


注意:但它会给您带来脏读。

insert语句几乎肯定会对表2发出锁。然而,如果您的第二个语句与UR有关联,那么它很可能可以避免这些锁。如果您有一个测试系统,您可以尝试将注册表变量DB2_WORKLOAD设置为WAS,该变量设置了以下所有参数:


我建议使用dsmtop或MONREPORT.DBSUMMARY来确定只读查询实际花费的时间。

insert语句几乎肯定会对表2发出锁。然而,如果您的第二个语句与UR有关联,那么它很可能可以避免这些锁。如果您有一个测试系统,您可以尝试将注册表变量DB2_WORKLOAD设置为WAS,该变量设置了以下所有参数:


我建议使用dsmtop或MONREPORT.DBSUMMARY来确定只读查询实际花费的时间。

您只需要解释还是解决方案?您只需要解释还是解决方案?编辑问题。第二个查询使用UR运行。编辑问题。第二个查询使用UR运行。