joins are slow ?

olivier vidal_olivier at yahoo.fr
Sat Sep 25 15:23:58 CDT 2004


>
> Please tell by STEPS this.
> I want to repeat.

ok.

I opened the small program " two tables " which was in the folder 
Valentina_RB \ examples \ (3) two tables \ .

The program did not run because there were methods " #pragma 
arrayBoundsChecking " which do not exist any more in RB 5.5.
I got rid of to them.
I set cache to 20 Mo (in TestApplication Class, open event :  "Err = 
ValentinaInit(20 * 1024 *1024, "", "" )"
I verified that person_ptr and byte_fld were indexed.

The program run.
I went to the "test" menu and I clicked twice on "add 100K+400K 
records". 200 000 recordings were thus create in the db.

Then I have clicked on "scroll_w".
The window-query appears.
Query "SELECT * FROM person,task WHERE byte_fld < 10 ".
I clicked on " do it! ".
The results appear in the window after 24 seconds on my old powerbook 
(400Mhz, 384 Mo Ram, HD 4200 trs/mn).
(18 seconds if I entered the same request in viSQL)

DATABASE :

TWO TABLES

Person :
   name = "Person"
   BoolFld = new VBoolean( "bool_fld" )
   ByteFld = new VByte( "byte_fld", kV_Nullable )
   ShortFld = new VShort( "short_fld" )
   UShortFld = new VUShort( "ushort_fld" )
   LongFld = new VLong( "long_fld" )
   ULongFld = new VULong( "ulong_fld" )
   FloatFld = new VFloat( "float_fld" )
   DoubleFld = new VDouble( "double_fld" )
   StringFld = new VString( "string_fld",  30 )
   DateFld = new VDate( "date_fld" )
   TimeFld = new VTime( "time_fld" )
byteFld.indexed=true //ADD

Task :
   name = "task"
   mPersonPtr = new VObjectPtr( "person_ptr", inDataBase.mPerson, 
kV_SetNull )
   mName = new VString( "name", 20 )
   mStartTime = new VTime( "start_time" )
   mFinishTime = new VTime( "finish_time" )
   mStatus = new VByte( "status" )

thank you

olivier



More information about the Valentina mailing list