Subject Re: Blob Parsing Stored Procedure
Author lucas_jessee
--- In, "Milan Babuskov" <milanb@...>
> What other databases?

Probably PostgreSQL, Oracle, MySQL, and SQLServer. I guess the
ability to move to Oracle down the road might be the largest
requirements. The end users may have requirements to use a certain
database and we want it to be as flexible as possible. I know that's
a bit cryptic, but lets just assume that it's necessary.

> There are various database access layers more efficient than ODBC.

Are there others that are also cross-platform? I don't think I can
use something like ADO for instance. I'm using regular old
cross-platform C++, not the MS Managed C++.

> Firebird itself has a 'chatty' network protocol, and ODBC is even more
> 'chattier'.

The 'chattiness' may explain the performance results I got. Again...I
concluded that each call to SQLExecute had a certain amount of
overhead that was probably large in relation to the ~256 Bytes of data
that I was sending. Though I've never studied the internals of the
driver, so I can't say for certain. I can only go by my results.

> You could come close with EXECUTE STATEMENT, but I'm not sure how much
> is string parsing going to cost.

Do you mean like EXECUTE AS BLOCK and chain a bunch of INSERT INTO ...
; statements together? I've thought about that as well, but is there
a maximum "statement length"?

> I suggest you invest two hours and write the equivallent C++
> application using IBPP (which is really easy to use) and try inserting
> with it. I'm sure it will go much faster than via ODBC.

That might be a worth-while exercise, just to test the performance.
However, I've already written all of my application code using ODBC.
It would take me several weeks to port the entire application to
another interface.


> --
> Milan Babuskov