QODBC SELECT taking > 15 minutes to return results

2019-08-10 04:19发布

问题:

I'm pretty new to using QODBC for QuickBooks reporting. One of the first SELECT queries I prepared essentially flags customers with existing unused payments in the ReceivePayment table, querying against invoices with remaining balance for that same customer. The output is (or should be) a list of customers grouped by CustomerRefFullName, with a sum of unused payments in column #2, and sum of total balance remaining from open invoices.

It's a fairly simple query. When I import the table to MS Access as a static table, the query is fast as would be expected. However, when I run the query against a linked table, it takes upwards of 15 minutes to produce the results.

This should not be happening. Is this a MS Access misconfiguration issue? Something else relating to QODBC configuration that I am missing or unaware of? Any help would be appreciated.

回答1:

I would like to inform you that when you Import QuickBooks data in the Access & run query, then obviously it will execute faster because all data available in a local MS Access table (offline). But when you execute query from linked table, QODBC is fetching data from QuickBooks. QODBC is an ODBC driver which uses QuickBooks SDK.

QODBC works by accepting SQL commands from applications through the ODBC interface, then converting those calls to navigational XML commands to the QuickBooks Accounting DBMS and returning record sets that qualify for the query results. This driver is not a Client/Server product, but rather communicates directly with the QuickBooks application as it runs. QuickBooks is a flat file database, and this driver will not change it into a relational database, so keep that in mind when developing with this driver.

QODBC acts as a 'wrapper' around the Intuit SDK so customers can finally get at their QuickBooks data using standard database tools; speeding development time.

Please keep in mind that QODBC is not a database tool, but rather a translation tool. Every transaction you request must be translated and communicated to QuickBooks via large complicated XML transactions.

The QuickBooks application layer needs to process those XML requests. The larger the number of Records, the lengthier the XML request, therefore QuickBooks may take more time and memory to process longer requests.

I would suggest you to enable QODBC status panel via QODBC Setup Screen->Message Window->Select "Display Driver Status" and "Display optimizer Status" options.

Then the next time you run a query, if you see “Waiting for QuickBooks”, it means QuickBooks is taking time to process the request. There will be a status panel at the lower right corner of your screen, will be shown a window with information on what QODBC is working at. Please note the step on which QODBC spends the most time or get stuck and share it with us.

I also suggest you to try executing below command on VB Demo and see it can resolve the issue:

SP_OPTIMIZEFULLSYNC ALL

This command will bring some data to a local cache to increase retrieval performance for queries. I would like to suggest you to please let run above command completely. Above command may take sometime depends on your records in QuickBooks. It may take 2-5 hours or more depends on the number of records in QuickBooks company file. Please let this command run completely do not kill this command. It is not advisable to kill/close the application while its building the Optimizer file.

Refer: How to execute SP_OPTIMIZEUPDATESYNC or SP_OPTIMIZEFULLSYNC for Selected Tables

If you are still facing issues, I kindly request you to please raise a support ticket to the QODBC Technical Support department from below mentioned link & provide requested information:

http://support.qodbc.com

Also share more information about the issue you’re facing, so that we can locate the problem quickly.

We may need following information, Please attach below listed files when replying to the ticket.

1) Screenshot of QODBC Setup Screen -- > About (Start>>All Programs>> QODBC Driver for use with QuickBooks>> QODBC Setup Screen >> About Tab ) 2) Screenshot of the issue you’re facing. 3) Share QuickBooks Version details: Press f2 on QuickBooks UI & share screenshot. 4) Share the SQL statement you’re using. Share Entire Log Files as an attachment in text format from 5) QODBC Setup Screen -- > Messages -- > Review QODBC Messages 6) QODBC Setup Screen -- > Messages -- > Review SDK Messages