I have 2 different DBs but with the same data strucutures and indexes, but different set of data (one is empty and the other has some test data in it) - my explain plan for the same query between the 2 Databases is different and so is the Cost of the plan. Why is it so ?

This DB has some data :
Code:
 
Operation	Object Name	Rows	Bytes	Cost	Object Node	In/Out	PStart	PStop

SELECT STATEMENT Optimizer Mode=CHOOSE		1  	 	6  	 	      	             	 
  NESTED LOOPS		1  	57  	6  	 	      	             	 
    NESTED LOOPS		1  	51  	5  	 	      	             	 
      NESTED LOOPS		1  	43  	4  	 	      	             	 
        TABLE ACCESS FULL	CLG_CLASS_USER_MAP	1  	13  	3  	 	      	             	 
        TABLE ACCESS BY INDEX ROWID	CLG_USER	1  	30  	1  	 	      	             	 
          INDEX UNIQUE SCAN	PK_USER	1  	 	 	 	      	             	 
      INDEX RANGE SCAN	PK_GRADE_USER_MAP	882  	6 K	1  	 	      	             	 
    TABLE ACCESS BY INDEX ROWID	CLG_GRADE	1  	6  	1  	 	      	             	 
      INDEX UNIQUE SCAN	PK_GRADE	1
This DB is empty :
Code:
 
Operation	Object Name	Rows	Bytes	Cost	Object Node	In/Out	PStart	PStop

SELECT STATEMENT Optimizer Mode=CHOOSE		1  	 	2  	 	      	             	 
  NESTED LOOPS		1  	113  	2  	 	      	             	 
    NESTED LOOPS		1  	107  	1  	 	      	             	 
      MERGE JOIN CARTESIAN		1  	78  	1  	 	      	             	 
        TABLE ACCESS BY INDEX ROWID	CLG_CLASS_USER_MAP	1  	52  	1  	 	      	             	 
          INDEX SKIP SCAN	PK_CLASS_TEACHER_MAP	1  	 	 	 	      	             	 
        BUFFER SORT		1  	26  	 	 	      	             	 
          INDEX FULL SCAN	PK_GRADE_USER_MAP	1  	26  	 	 	      	             	 
      TABLE ACCESS BY INDEX ROWID	CLG_USER	1  	29  	 	 	      	             	 
        INDEX UNIQUE SCAN	PK_USER	1  	 	 	 	      	             	 
    TABLE ACCESS BY INDEX ROWID	CLG_GRADE	13  	78  	1  	 	      	             	 
      INDEX UNIQUE SCAN	PK_GRADE	1
Thanks.