Hi Wolfgang Laun-2, i continue to have problems with performance of this rule.
I made few more observations: if i write the rule like this (notice hardcoded tbale name in input source comparision), it runs fast. $project:Project(status==Status.DATA_FETCHED) $rule:Rule(name=="somerulename") $processResult1:ProcessResult(projectId == $project.projectId ,inputSource == "table1",outputTable=="" ) $processResult2:ProcessResult(projectId == $project.projectId ,inputSource == "table2" ,inputSource != $processResult1.inputSource,outputTable=="") $processData1:ProcessData(parent==$processResult1) $processData2:ProcessData(parent==$processResult2 ,eval($processData2.getValue(SomeEnum.toString()) .equals($processData1.getValue( SomeEnum.toString()))) ,eval($processData2.getValue(SomeEnum.toString()) .equals($processData1.getValue( SomeEnum.toString()))) ) Now if i write my rule like this, it becomes dead slow. $project:Project(status==Status.DATA_FETCHED) $rule:Rule(name=="somerulename") $processResult1:ProcessResult(projectId == $project.projectId ,inputSource == $rule.inputSource,outputTable=="" ) $processResult2:ProcessResult(projectId == $project.projectId ,inputSource == $rule.inputSource ,inputSource != $processResult1.inputSource,outputTable=="") $processData1:ProcessData(parent==$processResult1) $processData2:ProcessData(parent==$processResult2 ,eval($processData2.getValue(SomeEnum.toString()) .equals($processData1.getValue( SomeEnum.toString()))) ,eval($processData2.getValue(SomeEnum.toString()) .equals($processData1.getValue( SomeEnum.toString()))) ) Can anyone please help me here? Thanks! Ravi -- View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Strange-Performance-Problem-in-Rules-tp1728527p1731893.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