Planning/Implementation Advice

Hey all,

I Am about to set up a DB2 server and wanted to get a critique of what I plan to do. Please feel free to rip this to shreds

Win2k Server
IBM Netfinity
Xeon 2.4GHz
RAID-5 (6 disks, stripesize 16k)
HDD 4.7 avg seek, 10,000 rotation TR 320

The database will be combined OLTP/Queries (Its a financial services system for a small/mid sized company, 70 users using a Java/Browser based front end). Reporting will also be done off this server (mostly out of hours).
I will have 2 massive fact tables which make up about 1/3 of overall data.

I have turned on DB2_STRIPED_CONTAINERS and set DB2_PARALLEL_IO=*

The area I am mainly interested in planning at the moment is physical layout (altho I welcome tips on any relevent area).

Here are my plans:
Put most tables in the userspace1, assigning most of the bufferpool to that space.
Create a DMS tablespace for the 2 big tables, giving eact one 3 containers of about 3GB each.
I intend to make the extent=16 and the prefetch=64.

I am using, does multiple containers give any benefit? Taking RAID into account etc. am I making the right chioce for tablespace/extent/prefetch sizes?
Any feedback on what I have so far? Am I totally deluded?
Cheers in advance.
Who is Participating?
ghp7000Connect With a Mentor Commented:
I would say that in the scenario you have, there is no real benefit to DMS tablespaces, I would go with SMS, it is easier to manage. Set the DB2_PARALLEL_IO variable according to the scenario listed here:
I would put all the tables in the same tablespace, I would put the indexes in another tablespace.
I would mirror the logs (available in v8).
In version 8, DB2_STRIPED_CONTAINERS has no effect.

After some years, my general (means for every dbms) rules of thumb are:
-Raid 5 (or 0+1 when possible because it's really faster) for all logical volumes (+hotswap, hotplug and a spare disk in the bay)
-The db Log files dedicated on a volume (many writes rare read)
-Application + System + db Temp on a volume (some big chunk read&write)
-Index on a small very fast volume (Lowest seek time)
-Data on a large volume (Highest bandwidth)
==> If I can not afford that many volumes :
-step 1 : share db Logs with application-system-temp
-step 2 : share Data and Index

With DB2, the fact that tablespaces are linked to memory cache (bufferpools) make it slightly different because you may imagine having as many tablespaces as pagesize you use...but in fact you don't really care.
Try having prefetch/extent adjusted on your physical page size (means use a medium multiple of your 16K stripesize).
==> Next step is : Monitor your db using the excellent freeware below instead of those terrible db2 "tools"

Hope this helps.
what version of db2 are you going to use?
is this an ee setup or an eee setup?
what growth rate do you anticipate for the large tables?
how many indexes do you plan to have on the large tables?
are the users connecting via internet? intranet?
meehangeAuthor Commented:
>what version of db2 are you going to use?
Currently 7.2 moving to 8.1 this week

>is this an ee setup or an eee setup?
Workgroup Server Edition

>what growth rate do you anticipate for the large tables?
Hard to say, I'd guess the whole thing will grow by about 1GB per year

>how many indexes do you plan to have on the large tables?
Will depend on tuning efforts once the application is finished

>are the users connecting via internet? intranet?
meehangeAuthor Commented:
Thanks for the info, I found out this week that we'll be moving to Blades using SAN. So I guess I'll be doing some more research on that now :P
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.