4

在coldfusion中,是否可以将隔离级别从数据源级别的默认隔离级别“读取提交”设置为“读取未提交”......

我认为这可以从每个数据源连接设置所在的内部文件中的数据源文件中完成。

请分享您对此的看法。

谢谢, Sj

4

1 回答 1

2

你有几个选择:

  1. 在数据库本身上执行此操作(例如在 MS Sql Server 中,您可以设置默认隔离级别)
  2. 在 CF 6 中可以通过 xml 在数据源上执行此操作(如您所问),但我强烈建议您不要这样做,即使它仍然受支持
  3. 在 SQL 中使用表提示。

由于隔离处理事务,因此在数据库中设置默认 READ 或通过指定它更有意义<cftransaction isolation="read_uncommitted"...>

如果您需要将其应用于所有语句,例如允许快照读取,则在数据库本身中应用默认隔离。 这是一个很好的概述和如何设置它的步骤。

如果您想从特定表中读取未提交的内容(听起来不像),请使用表提示,例如

SELECT * FROM LargeDataSet WITH (NOLOCK)

请记住,这是一个提示,并且引擎不会被迫遵守它。

通常,如果您需要读取未提交的数据,那么这意味着您遇到了读取阻塞,您可能需要考虑一些架构更改(去过那里,做过)或将默认设置更改为快照模式(该方法的优缺点)

祝你好运!

于 2013-08-26T21:18:42.120 回答