[Progress Communities] [Progress OpenEdge ABL] Forum Post: RE: Loading schema into a new, empty database is slow (prodict/load_df.p)

  • Thread starter Thread starter dbeavon
  • Start date Start date
Status
Not open for further replies.
D

dbeavon

Guest
@Tom >> How slow is slow? Good question. The database has about 1200 tables, 19000 fields, 200 sequences. It takes about 60 seconds to build the empty database for those tables. It is not terrible but it seems slow when you are waiting for the build to finish. It is also unfortunate when I see that the creation of the empty database takes more time than the compiling of the ABL code. Also, my build server has eight cores running at 3.2 GHz, but a single CPU core appears to be the only resource that determines the duration of the operation . It seems like there is an improvement to be made here. I was hoping I would find some secret trick in PCT that would improve on the performance but I didn't see anything yet. When I'm loading the DF schema, I current don't actually proserve the database. The program creates a connection in single user mode (-1). Similarly, while compiling ABL I can also do that from multiple processes without proserving as well, as long as we use the -RO connection option for the connected clients which are doing the compiling. >> You might also want to ensure that you have adjusted the bi cluster size prior to loading the .df. I'll try to do more digging on this topic. When I create the database it is with a pretty basic structure. And I never proserve. The overall process goes something like this (prior to starting the compiles): prostrct.bat create BuildSchema SimpleStructure.st procopy.bat empty BuildSchema _progres.exe -db BuildSchema -H localhost -ld BuildSchema -1 -s 100 -inp 50000 -b -p MyLoadSchemaProgram.p proutil.bat BuildSchema -C truncate bi At no point do I serve the database. The third step is where all the time is spent. @Rob >> .. tuning got it to about 14. I'm amazed that you were able to tune the loading of the DF schema, and get it down to a fraction of the original time. I didn't realize there were that many dials and switches to work with. Can you provide all the commands and parameters that you used for doing that? It sounds like you guys are saying things would go faster if I did proserve the database? I had been assuming that would simply add extra overhead, and that the "-1" (single user) mode would be able to do the exact same work without any IPC between client and server. I will try proserve'ing the database tomorrow and see if that makes the schema load faster than "-1". Thanks for the tips.

Continue reading...
 
Status
Not open for further replies.
Back
Top