Member Login

Username
Password
Forget Password
New Sign Up
Search Forum

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

Forum : Why do queries on Customer and Vendor take so long to run?Search Forum

Forum Home > QODBC - ODBC Driver for QuickBooks > QODBC Frequently Asked Questions

 New Topic 
 
 Post Reply 
[1]  
 Why do queries on Customer and Vendor take so long to run? 
 Author   Message 
  Tom 
  6c3c1_sdk-qodbc.gif
 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.

 

  Top 
  Tom 
  6c3c1_sdk-qodbc.gif
 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!

 

  Top 
  Tom 
  6c3c1_sdk-qodbc.gif
 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! 

  Top 
 New Topic 
 
 Post Reply 
[1]  

Jump to