Buy Support
Incidents |
If you can't find your answer
in the FREE PUBLIC QDeveloper Forum, require URGENT Priority Support, or you need to send us
private or confidential information: |
Click Here
|
If you can't
login and post questions or you are having trouble viewing forum posts:
Click Here
|
Callback
Support |
If you live in USA, UK, Canada, Australia or New
Zealand, you can leave us details on your question and request us to call you back and discuss
them with you personally (charges apply). |
Click Here
|
Buy Support
Incidents |
If you can't find your answer
in the FREE PUBLIC QDeveloper Forum, require URGENT Priority Support, or you need to send us
private or confidential information: |
Click Here
|
|
Why do queries on Customer and Vendor take so long to run? |
Author |
Message |
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-03-11 21:34:32 |
We are having critical performance issues with QODBC v6 (newest .150 version) and QB 6.0 (newest version as of today).
With optimzer off, it's unusable completely. With it on, it takes 5-10 minutes to put in one invoice! I've deleted the OPT files and recreated them dozens of times now, no luck.
With further testing we found, it's not the adding of invoices (or adding anything really) that takes so long, it's the querying of the Customer or Vendor table. These don't seem to optimize?
On QuickBooks 2005 using QODBC v6 : querying a vendor by name takes ~10 seconds. On QuickBooks 2006 using QODBC v6 : querying a vendor by name takes 14 minutes!
Why does the vendor and customer table take so long? I have about 900 records in these tables, it shouldn't even come close to this slow. |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-03-11 21:48:33 |
First of all, with QuickBooks 2006 USA Editions, Intuit has changed the actually database behind QuickBooks, so comparing QuickBooks 2005 to 2006 is no longer comparing apples with apples. It's more like comparing apples with oranges.
The QODBC optimizer cannot optimize the OPEN balance fields on Account, Customer and Vendors as well as ItemInventory OnHand amounts and status. These values change without any change in the timemodified timestamp of the record, so queries with these columns will be forced by QODBC to run unoptimized regardless of your optimizer settings. If you're doing a select * from customer or vendor, you need to leave out the OpenBalance column by selecting the other columns you need like:
For USA users of QuickBooks: Select FullName, LastName, FirstName, BillAddressAddr1, BillAddressAddr2, BillAddressCity, BillAddressState, BillAddressPostalcode from Customer where FullName = 'Acmer Inc.'
For Non-USA users of QuickBooks: Select FullName, LastName, FirstName, BillAddressAddr1, BillAddressAddr2, BillAddressCity, BillAddressCounty, BillAddressPostalcode from Customer where FullName = 'Acmer Pty Ltd'
Note: The jump-ins (which are like indexes) for customer and vendor are :
IsActive FullName TimeModified ListID
and you must use them in the where clause without any order by clause.
Queries like this get real fast answers with QODBC v6!
|
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-03-11 21:49:41 |
Bingo, you hit it right on. I was querying OpenBalance on the vendor and Select * on the customer table.
I changed this and it's immediate now.
Thanks! |
|
|
|
|