Friday, August 21, 2009

Heaps and Trees

I have spent the past couple of days in the gories of our databases. We run a combination of OpenEdge and SQL databases at work.

1. We transfer a chunk of data between the databases at night. Right now, to move about 20 GB between the databases takes about 41 minutes. When we first started this process in 1999, it would take about 3.5 hours. Between the changes in our backbone, database upgrades and new hardware, I picked up about 2 hours between the beginning of the year and now. I have one table that is running about 37 minutes and this is blowing my goal to bring this under 30 minutes. So to pick up 7 minutes, I am doing the nasty with this guy over the weekend. If I can get him to 25 minutes, I would be a happy child. And to be a happy child, I have spent way to much time with heaps and storage this week.
2. The other piece of this is getting the most used tables of our OpenEdge databases up in memory. 32 bit windows has a limited amount of shared memory that can be addressed. (Don't even say /G or /PAE or Linux.) I have spent even more time playing with shared memory segment sizes. This has been endless iterations of adjusting buffers and segment sizes, waiting to see if the database will start, and then waiting to see if everything can address the memory in this space without error. All of this spinning may add another 300 megs of addressable space to put more information up in the buffers. With more stuff in the buffers, the less I need to hit the disk and the faster we all go.

I have spent the week looking for minutes. 7 minutes here, faster access there.