Dear all,<br /><br />My setup includes about 5000 rules with the following pattern:<br /><br />rule &quot;1&quot; <br />when<br />        (<br />        $c_0 : CFRO( fi.co == &quot;1&quot;, su.co == &quot;P&quot;, c.co == &quot;C&quot;) or <br />        $c_0 : CFRO( fi.co == &quot;2&quot;, su.co == &quot;P&quot;, c.co == &quot;C&quot;) or <br />        $c_0 : CFRO( fi.co == &quot;3&quot;, su.co == &quot;P&quot;, c.co == &quot;C&quot;) or <br />        $c_0 : CFRO( fi.co == &quot;4,  su.co == &quot;P&quot;, c.co == &quot;C&quot;) or <br />        $c_0 : CFRO( fi.co == &quot;5&quot;, su.co == &quot;P&quot;, c.co == &quot;C&quot;) <br />        )<br />then<br />        Bcf fact = new Bcf ();<br />        fact.setC( &quot;123&quot;);<br />        insert( fact);<br />end<br /><br />The number of disjunctions varies, it might go up to 80. Just loading these 5000 rules uses about 200mb.  I use 5.1.1.<br />Is this to be expected or do I something fundamentally wrong. Any help highly appreciated. For instance,  would it<br />make sense to use a rule for each of the disjunction?<br /><br />I add the rules the with the following code:<br /><br />DroolsObjectInputStream stream = new DroolsObjectInputStream(inputStream);<br />Collection&lt;KnowledgePackage&gt; knowledgePackages = (Collection&lt;KnowledgePackage&gt;)stream.readObject();<br /><br />stream.close();<br />engine.addKnowledgePackages(knowledgePackages);<br /><br />Many thanks in advance<br /><br />Thomas