为什么我们需要将常量声明为共享常量?

时间:2014-05-30 13:45:24

标签: multithreading messagebroker ibm-integration-bus extended-sql

在ESQL中我们有共享常量,为什么我们在它们是常量时需要它们,即使多个线程访问相同的值它们也不会改变。

声明我的共同共同点'我的常数';

或者一般来说我想知道为什么我们需要共享常量?

2 个答案:

答案 0 :(得分:0)

使用我的immagination,您可以声明一个常量共享,以便不在Flows中复制BIG变量 例如,如果您希望发送每次相同的消息并希望节省时间,则它可能在多实例流中很有用。 它可能已经在记忆中:

   DECLARE MYVAR SHARED CONSTANT BLOB X'0000' ;

我认为这种需求非常罕见 甚至更不经常利用这一点:如果blob太大,那么放入全局变量就会适得其反。

答案 1 :(得分:0)

根据这个post,读取共享常数比正常常数需要更多时间。似乎所有共享变量都有锁定机制,包括常量。

但是可能所有非共享CONSTANT都会在每个流实例的开头复制到内存中。我会说,如果你有很多常量,并且每个流只访问其中的一些,那么共享常数会更高效。

如果性能问题,我会测试哪个选项在更短的时间内处理数据。但是没有最适合每个消息流的解决方案。