Block based might help if you have a lot of table scans.
Since it is very unlikely that you can fit all the data in bufferpools and keep it there with a large data warehouse, you have to figure out which data should be (such as indexes and highly used small tables) put in a seperate bufferpool that has about the same amount of memory as there is data assigned to that bufferpool. This will enable your bufferpool hit ratio to be high for at least some important objects (indexes and small tables), even if the larger tables will have a lower bufferpool hit ratio.
In order to assign indexes to a seperate bufferpool than the table data, it must be in a DMS tablespace, and you must specify a seperate tablespace for indexes when the table is created.