It's difficult to suggest an optimized form for your rules 1-infinity, since we do not know what you want to achieve.

The crude duplication of rules where only the constant to be matched with Product.id varies can, most likely, be avoided.

-W



On Sun, Jul 19, 2009 at 3:15 PM, nesta <nesta.fdb@163.com> wrote:

Hi,

I am a newbie in drools. There are a lot of simple rules in a scenario.
For example
rule 1
   when
       Product( id ==1, usage == 1)
       $decision : Decision()
   then
        $decision.setValue(1);
end

rule 2
when Product( id ==2, usage == 1)
 $decision : Decision()
rule 3
when Product( id ==3, usage == 1)
 $decision : Decision()
rule 4
when Product( id ==4, usage == 1)
 $decision : Decision()
rule 5
when Product( id ==5, usage == 1)
 $decision : Decision()
......

I have a Product fact whose id = 5 and usage = 1, in my first thinking, only
rule 5 is matched, there should be not much more different between 1 rule
and a lot of rules in runtime.

But the result shows that they are different. More rules will cost more
time. If there are 1 thousand rules, some Node and Sink will execute 1
thousand times.

My question is how to optimize this scenario?
--
View this message in context: http://www.nabble.com/optimization-on-a-lot-of-simple-rules-tp24556724p24556724.html
Sent from the drools - user mailing list archive at Nabble.com.

_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users