Stan's slow problem

Stan Busk maxprog at mac.com
Wed May 31 18:49:39 CDT 2006


On May 31, 2006, at 6:41 PM, Ruslan Zasukhin wrote:

> On 5/31/06 7:36 PM, "Stan Busk" <maxprog at mac.com> wrote:
>
>> The 'fault' is when you select the app to monitor, press 'inspect',
>> and on the window you get, select 'Statistics'. 'Faults' is on the
>> left, last line.
>
> Okay I see.
>
>> Yesterday I made a lot of tests and as a result I am even more
>> confused than before. Summing the time taken by each query, you get a
>> very good timing. I removed anything else in the loop and it is still
>> slow. Seems 99% of the time is wasted on the For...next. Don't
>> understand it... No calculation there.
>
> A guess.
>
> Don't you use Vfield.Value ?

This is the table structure:

   mRecordID         = new VULong     
("Transaction_RecID")                                          //  
Transaction rec ID# in Database

   mDate             = new VDateTime ("Transaction_Date",  
EVFlag.fIndexed)                          // Transaction date
   mDay              = new VByte      
("Transaction_Day")                                            //  
Transaction Day
   mMonth            = new VByte     ("Transaction_Month",  
EVFlag.fIndexed)                         // Transaction Month
   mYear             = new VUShort   ("Transaction_Year",  
EVFlag.fIndexed)                          // Transaction Year

   mProductReference = new VULong    ("Transaction_ProductReference",  
EVFlag.fIndexed)              // Product reference
   mProductQuantity  = new VULong     
("Transaction_ProductQuantity")                                //  
Product quantity
   mProductSerial    = new VvarChar  ("Transaction_ProductSerial",  
64, EVFlag.fIndexed)             // Product serial

   mSupplierTransID  = new VvarChar  ("Transaction_SupplierTransID",  
64, EVFlag.fIndexed)           // Supplier transaction number (Kagi,  
Paypal... transaction number)

   mCustomer         = new VULong     
("Transaction_Customer")                                       //  
Customer
   mCustomerName     = new VvarChar  ("Transaction_CustomerName", 64,  
EVFlag.fIndexed)              // Customer name
   mCustomerEmail    = new VvarChar  ("Transaction_CustomerEmail",  
64, EVFlag.fIndexed)             // Customer e-mail address

   mAmount           = new VDouble    
("Transaction_Amount")                                         //  
Transaction amount
   mSupplier         = new VvarChar  ("Transaction_Supplier", 32,  
EVFlag.fIndexed)                  // Supplier/Processor (Kagi,  
RegNow, PayPal...)

   mRefunded         = new VBoolean  ("Transaction_Refunded",  
EVFlag.fIndexed)                      // Transaction has been refunded
   mChargedBack      = new VBoolean  ("Transaction_ChargedBack",  
EVFlag.fIndexed)                   // Transaction has been charged back
   mCleared          = new VBoolean   
("Transaction_Cleared")                                        //  
Transaction has been cleared

   mComment1         = new VvarChar  ("Transaction_Comment1", 64)
   mComment2         = new VvarChar  ("Transaction_Comment2", 64)

   mCustomData1      = new VvarChar  ("Transaction_CustomData1", 32,  
EVFlag.fIndexed)
   mCustomData2      = new VvarChar  ("Transaction_CustomData2", 32,  
EVFlag.fIndexed)
   mCustomData3      = new VvarChar  ("Transaction_CustomData3", 32,  
EVFlag.fIndexed)
   mCustomData4      = new VvarChar  ("Transaction_CustomData4", 32,  
EVFlag.fIndexed)
   mCustomData5      = new VvarChar  ("Transaction_CustomData5", 32,  
EVFlag.fIndexed)

   mPaymentMethod    = new VvarChar  ("Transaction_PaymentMethod", 32)
   mInvoiceNum       = new VvarChar  ("Transaction_InvoiceNum ", 32)
   mSubscribed       = new VBoolean   
("Transaction_Subscribed")                                     //  
Customer is subscribed to product
   mCountry          = new VvarChar  ("Transaction_Country", 32,  
EVFlag.fIndexed)                   // Customer country

   mWeekOfYear       = new VByte      
("Transaction_WeekOfYear")                                     //  
Week of year the transaction belongs to
   mDayOfYear        = new VUShort    
("Transaction_DayOfYear")                                      // Day  
of year the transaction belongs to
   mDayOfWeek        = new VByte      
("Transaction_DayOfWeek")                                      // Day  
of week the transaction belongs to

   mCreationDate     = new VDateTime  
("Transaction_CreationDate")                                   //  
Transaction Creation Date
   mModificationDate = new VDateTime  
("Transaction_ModificationDate")                               //  
Transaction Modification Date

   mImportNumber     = new VULong     
("Transaction_ImportNumber")                                   //  
Transaction import number

> REALBasic have problem with this. Because of VARIANT.
>
> Works VERY SLOW !!! About 20 times slower than e.g.
>
>         Vlong.Value

and VULong? I use VULong a lot.

>
>> The loop without queries is instantaneous, queries are fast but
>> queries inside the loop get a slow overall timing. Completely  
>> nonsense.
>
> If above guess wrong, send me,
>
> I will run it under profiler and see where is problem

What do you need, the compiled app? or the project?

Stan

>
> -- 
> Best regards,
>
> Ruslan Zasukhin
> VP Engineering and New Technology
> Paradigma Software, Inc
>
> Valentina - Joining Worlds of Information
> http://www.paradigmasoft.com
>
> [I feel the need: the need for speed]
>
>
> _______________________________________________
> Valentina-beta mailing list
> Valentina-beta at lists.macserve.net
> http://lists.macserve.net/mailman/listinfo/valentina-beta



More information about the Valentina-beta mailing list