我使用的是和一个IBM DB2数据库。我只是查询数据的分析目的-从来没有做任何更新,增加或删除。我想知道是否有办法确保默认情况下每个查询都是未提交的读取,这样我就不会锁定表。有没有一种方法可以不在每次查询结束时键入FOR FETCH ONLY WITH UR就完成这一操作?启用Autocommit在Preferences -> Database -> Advanced中的设置是否可以实现相同的目标(而不是锁定表)?
发布于 2015-12-11 22:20:13
有几种方法可以实现这一点。首先,您可以简单地运行以下语句
SET CURRENT ISOLATION UR在执行其他语句之前在您的会话中。
或者,您可以在用于连接数据库的JDBC中设置一个属性,如下所示:
jdbc:db2://host:port/database:defaultIsolationLevel=1;值1对应于常量java.sql.Connection.TRANSACTION_READ_UNCOMMITTED (注意,它依赖于实现,可能会中断)。
https://dba.stackexchange.com/questions/123476
复制相似问题