bi size - is this odd?

longhair

Member
good morning all,
quick question.
hpux 11.i progress 9.1c.
have a single user db with 3 tables. db size is about 3mb.
everyday i delete the records in 2 of the tables and add in a new set of records.
basically like this:

Code:
for each db.table:
 delete db.table.
end.
input from /files/filename.txt.
repeat:
 lead_part = "".
 lead_time = 000.
 lead_soft = 000.
 lead_next_item = "".
 import delimiter ";" lead_part lead_time
 lead_soft lead_next_item.
 do:
  create db.table.
  table.field1 = lead_part.
  table.field2 = lead_time.
  table.field3 = lead_soft.
  table.field4 = lead_next_item.
 end.
end.
other than this, all the tables are used for is lookups.
like i said the db is 3mb. but after i delete the data and create the records the bi file size is roughly 10 times the db size (about 30mb).
i've tried adding 'transaction' to my do statements, and this does lower the bi file size by about 5mb, but this still doesn't make much sense to me. we use the same logic on other tables in other dbs and it doesn't appear to have the same effect.
is this an isssue with the code, or is it something else?
regards,
longhair
 

Casper

ProgressTalk.com Moderator
Staff member
In this program you have 2 transactions:
  1. for each loop
  2. Repeat block
You could narrow the for each loop transaction down by deleting the buffer within a transaction in the for each loop.

Together with making a transaction per created record should make your BI not grow.

Performancewise best thing to do is to delete/create per 100 records.

Regards,

Casper.
 

longhair

Member
Casper,
thanks for your time.
just 2 quick questions - how would i go about deleting the buffer within the for each loop?
and what is the most efficient way to delete / create per 100 records.
thanks again.
regards,
longhair
 

TomBascom

Curmudgeon
How about if you clearly state your question in a new thread rather than bringing an old thread back to life? That way your question will get answered and future readers will be less likely to be confused.
 
Top