在ESQL中我们有共享常量,为什么我们在它们是常量时需要它们,即使多个线程访问相同的值它们也不会改变。
声明我的共同共同点'我的常数';
或者一般来说我想知道为什么我们需要共享常量?
答案 0 :(得分:0)
使用我的immagination,您可以声明一个常量共享,以便不在Flows中复制BIG变量 例如,如果您希望发送每次相同的消息并希望节省时间,则它可能在多实例流中很有用。 它可能已经在记忆中:
DECLARE MYVAR SHARED CONSTANT BLOB X'0000' ;
我认为这种需求非常罕见 甚至更不经常利用这一点:如果blob太大,那么放入全局变量就会适得其反。
答案 1 :(得分:0)
根据这个post,读取共享常数比正常常数需要更多时间。似乎所有共享变量都有锁定机制,包括常量。
但是可能所有非共享CONSTANT都会在每个流实例的开头复制到内存中。我会说,如果你有很多常量,并且每个流只访问其中的一些,那么共享常数会更高效。
如果性能问题,我会测试哪个选项在更短的时间内处理数据。但是没有最适合每个消息流的解决方案。