更改隔离级别和锁定模式Informix数据库?

时间:2013-09-11 10:40:47

标签: locking informix isolation-level

有没有办法将隔离级别和锁定模式更改为整个数据库?

2 个答案:

答案 0 :(得分:2)

如果您使用的是版本11或更高版本:是
您可以使用 public.sysdbopen 过程来执行此操作。

  • 只需使用设置隔离和锁定时间创建过程
  • 该过程仅对创建它们的数据库有效。

当用户连接到数据库时,将执行此过程。 如果某些用户已经拥有自己的sysdbopen过程,那么请注意,不会执行公共“版本”,只会执行自己的用户。

create procedure "public".sysdbopen()
  set isolation to dirty read ;
  set lock mode to not wait;
end procedure
;

答案 1 :(得分:0)

Informix中没有每个数据库的隔离级别和锁定模式的概念。 两者都是数据库客户端属性所以这取决于您的客户端库或工具。 例如,对于squirrel客户端描述,请访问:How to Automatically Execute a Command on Connection。 对于Odbc,您可以在“环境”选项卡中的DSN属性中设置隔离级别。

唯一的通用方法是由ceinmart提供。在Informix 11及更高版本中,只要建立连接,就会执行sysdbopen存储过程。它是设置隔离级别和锁定模式的理想场所。但是,此存储过程是一个“每个Informix引擎实例”,而不是“每个数据库”。您需要在那里添加一些逻辑:从dbinfo读取数据库名称,然后有条件地应用设置。