Page 1 of 1

ODAC Trial / Testing

Posted: Mon 11 Feb 2013 20:23
by jeckels
I have downloaded a trial copy of ODAC, and am trying to set up some tests.

I have looked around, but could not readily find examples of progammatically creating

TOraSession, TOraQuery, TOraDataSet

What I am trying to test is a threaded example where each thread has its own TOraSession.

All appears to run fine if I have only 1 thread, but gives random errors when there are multiple threads.

What I have thus far for this test is ...

Oracle 11g client. 32bit.
Delphi 7, using FastCode, FastMM4, and enhanced RTL units for concurrecies.

MyConnection relevant stuff ...

Code: Select all

FConnection := TOraSession.Create(Nil);
FConnection.HomeName := 'OraClient11g_home1';
FConnection.ThreadSafety := True;
FConnection.ConnectPrompt := False;
FConnection.AutoCommit := False;
FConnection.Username := 'TEST';
FConnection.Password := 'TEST';
FConnection.Server := 'VALIDTNSENTRY';
MyExecutableQuery relevant stuff ..

Code: Select all

  FQuery := TOraQuery.Create(Nil);
  FQuery.Session := MyThreadSession; // is from aforementioned thread specific TOraSession
  FQuery.ParamCheck := False; // I create via Params.CreateParam()
  FQuery.NonBlocking := False; // I want to run serially
MySelectQuery relevant stuff ...

Code: Select all

  FQuery := TOraDataSet.Create(Nil);
  FQuery.Session := MyThreadSession;
  FQuery.ParamCheck := False; // I create via Params.CreateParam()
  FQuery.ReadOnly := True;
  FQuery.Unidirectional := True;
  FQuery.FetchRows := 100;
  FQuery.FetchAll := False;

The flow of the test is

main thread, create a connection, and then run a couple of queries (one select, one update). Then create 12 threads. Each thread creates a session. But for now, doesnt run any TOraQuery or TOraDataset.

In a side-by-side test, our current library vs ODAC shows our current library is roughly twice as fast.

So, my question is, what settings above should I add/remove to optimize the ODAC functionality Under this test?

Please let me know if I left out necessary information.

Re: ODAC Trial / Testing

Posted: Tue 12 Feb 2013 11:06
by AlexP
Hello,

Please send the full sample demonstrating the problem to alexp*devart*com, also please provide the texts or screenshots of the error messages you get, and the script for creating DB objects. And we will try to help you solve the problem.

Re: ODAC Trial / Testing

Posted: Tue 12 Feb 2013 15:01
by jeckels
I tried to email you, but got undeliverable response.

"Reason: The domain size limit has been exceeded"

Thanks for the reply regarding the ODAC trial I am looking into.

My issue is with the performance, specifically as it compares to Direct Oracle Access. I cannot provide that source to you. Which is what my comparison is.

Our code abstracts the data access through our own coded driver, so that we can support Oracle and SQL Server. The low level code is 3rd party libraries (ie – DOA, ADO, ODAC).

We make use of only three classes. TOraSession, TOraQuery, TOraDataset.

The appeal to evaluating ODAC was two-fold; first it was to be a faster library (and the sales email response was that it was specifically tested against DOA performance, and consistently outperforms it); the second was that the end-user (programmer) interface between ODAC and DOA is very similar.

Feature,ODAC,DOA
Connection,TOraSession,TOracleSession
Query (insert,update,delete),TOraQuery,TOracleQuery
Query (select),TOraDataset,TOracleDataset

All of our code is non-visual, it’s for batch oriented processes. In testing, I’ve found that DOA runs in 29 seconds (average over 10 times), and that ODAC takes 54 seconds (average over 10 times).

I can provide all of the code areas except the DOA, as I am not legally permitted to do so.

Can you clarify what you would need to assist with this issue?

Any assistance in getting the tests to be acceptable for changing our libraries would be greatly appreciated.

Re: ODAC Trial / Testing

Posted: Wed 13 Feb 2013 16:51
by AlexP
Hello,

We did have problems with our e-mail server for several hours yesterday, these problems are already fixed, you can resend your e-mail.

In order that we can check the performance of our components and DOA, please describe the operations you perform for comparison (SELECT, INSERT, etc.), also please provide scripts for creating DB objects and specify the data volume you use for this test.