Subject RE: [firebird-support] Re: Fixing Database
Author Alan McDonald
> Hi,
>
> answering your questions, Alan.
>
> > what about the other 2 tables? static content?
>
> Yes
>
> > How big are the varchar fields you are indexing?
> > Are there any PKs declared? or just generator field values with no
> > constraints?
>
> The ID is the PK, generated. BIGINT.
>
> Varchars are 20, 250, 20. Charset NONE. Should be Ok for indexing,
> isn't it?

should be OK

>
> > sorry but something smells fishy here...
> > you say "path relative to the application" - why are you not saying
> path
> > absolute to localhost since the server runs on the same machine as
> the
> > application?
> > show us the full connection string you use with the driver.
> > Are you using the embedded server by any chance?
>
> No, I use superserver.
> The connection string contains the full path to the DB in
> form "C:\DataCenter\Db\Data\xxx.gdb"
>

this is wrong, you should be using TCP protocol
servername/port:drive:\path\databasename.ext

> > temp table in what form? FB table? text file? or DB2 table?
>
> FB table. It stored the raw data from DB2. Then the data is modified
> by human and spread across the four tables.
>


but you say no selects? how can you transafer data from a temp table without
selecting the data? please show the sql which performs this operation
(select from temptable, insert into final table)

> >
> > which method of commit do you use? hopefully hard commit... and how
> often
> > thru the processing do you commit?
>
> Yes, hard commit. Each insert is commited.

each and every insert? this must take too much time. You should insert under
explicit transaction control and count the inserts, committing every say
1000 record for start - test other quantities for optimisation.

>
> > You say you insert only? no selects? doesn't sound like you have no
> select
> > statemetns... seems like your indexes are not adequate for the
> queries you
> > use. Have you examined the plans of the selects?
>
> No, no selects at all. This appliaction only migrates the data from
> DB2 to FB. The temp table is processed for each record, then the
> validated data is inserted into the four tables in single transaction.


no selects? how can you get the data from the temp table without a select?

>
> > are your classes able to log DB engine exceptions? or just class
> errors?
> >
>
> Yes, all DB operations are it try/catch and errors from the ODBC
> driver are logged. Actually there were no errors at all.
>
>
Alan