功能导致enq-DX争用

时间:2012-02-28 18:03:47

标签: oracle crystal-reports

我有一个在Oracle中调用函数的水晶报表。此函数使用选择视图作为其表之一的选择。此视图使用指向其他数据库的多个链接(视图是多个查询的并集)。无论何时运行此函数,似乎运行视图的查询,并且创建视图的每个链接似乎都进入enq-DX争用。

这与这个已知问题有关吗? http://surachartopun.com/2008/12/dbink-hangs-enq-dx-contention.html

我问的原因是我的研究似乎表明这个问题应该只在链接到Oracle的不同版本时发生,但我使用的所有版本都是10.2

1 个答案:

答案 0 :(得分:0)

这种方法有效吗?这听起来不是一种做事的好方法。我可以想象这个函数在处理每一行时会造成大量的往返行程。

其他一些方法包括将函数尽可能靠近最大的数据表并保持对该数据库的处理。只返回您需要的功能。

您可以每天早上从查询创建一个表示所需数据集的表,并使用Crystal直接查询。只需使用存储过程或高级队列刷新您的数据。

其中一个带有刷新的数据库源的物化视图将是另一种方法。

编辑:是的,使用数据库链接可能会占用大量资源,导致您遇到的问题。这是否曾经有效或者是否需要解决方案的新要求。 如果它曾经用于改变的工作? 如果这是新的,我谦卑地建议采用我所建议的不同方法。