avivit,
Rowsize or average rowsize for all rows in a table can have huge impact on overall database performance. I can't give you definitive answer as related to Access but I can give you some observations and guidelines that apply to RDBMS's in general.
1. You need to know the average rowsize for all rows in
the table in question. Some RDBMS's, such as, Oracle
will do this for you, if not you will have to do it
via a script. The general requirements are:
a. determine the internal storage representation
for each data type supported by your RDBMS.
b. for each column in a table apply this internal
size based upon it data type. This is rather
easy for fixed values, such as, DATE, SMALLINT,
INTEGER, NUMERIC, CHARACTER, etc..., however,
when variable length columns are involved it
gets a little harder since a column may contain
1.....n characters which in turn can make each
row a different length. When the average
length is determined for each row in the table
calculate the average length for all rows in
the table.
2. Compare the average row length to the data block size
that the database was created with. For example, a
block size of 2048 and an avg row size of 250 will
allow each block to contain approximately 8 rows of
data. This means that a single I/O will return can
return 8 rows.
NOTE:
For gross estimation purposes I ignore any overhead
within a block, such as, header information or
storage maps.
If you find that the avg row size is larger than the
block size, multiple I/O's will be required for each
row retrieved (not a good thing!!!). There are times
that you may have to just live with it due to 3rd party
software or design requirements:-(
3. As a general rule I create my databases with a block
size based upon their intended purpose.
OLTP/Ad Hoc 4k
Batch/Ad Hoc 8k
OLAP/Data WS 16k +
4. Be aware that any of the above planning is and must
be based upon available RAM and RDBMS operating
constraints. It's been my experience that insufficent
RAM will beat a system to death due to paging or
swapping so I always start my performance evaluations
based upon the machine configuration and then work
toward the database.
I realize that this is kinda long-winded and may confuse
more than help but I'll be glad too help you with any
questions within my humble ability.