Henry Simpson
hsimpson88 at hotmail.com
Mon Oct 13 16:39:49 CDT 2003
If you must bring in the speed issue, the amount of time spent sorting is
not as significant as the time taken to bring the data to the processor. A
2 or 3 gigahertz processor can sort an amazing number of records in a tiny
fraction of a second, far faster than the data can be requested and
transferred from a hard drive. When the data is requested over a 100
megabit LAN, the lenght of time is significantly magnified. Add some
traffic to the LAN and everyone using the LAN is delayed. Now pull the data
over a slower connection and the difference in size between numeric and
string data types becomes more significant. Use a slower connection and the
time taken to transfer the data is even greater.
Some people don't realize that the number 933456123 is stored in 4 bytes as
a long yet takes 9 bytes as a string and 18 bytes as unicode. The string
will take more than twice as long to retrieve given a large recordset where
disk latency isn't the primary factor. Twice as long for a three second
retreival time is an extra 3 seconds. (100 mbit LAN, 9 bits/byte avg
throughput, 50% share of bandwidth = 5.5 million bytes per second ~ 1.4
million long fields = ~ 700 thousand string fields ~ two billion processor
cycles allowing about 700 processor cycles per record for sorting the number
and 1.4 million for sorting the string) The same size of recordset sorting
time, even if it takes four times as long to sort a string over a numeric,
will likely yeild a difference of .1 vs .4 seconds, a delay of 3 tenths of a
second depending on the algorithm. Although it only takes twice as long to
retrieve, this makes a bigger difference than the fact that it takes perhaps
four times as long to sort. Another significant factor is that the index
size of a numeric is smaller than that of a string resulting in faster LAN
performance for any searches on the field with a resulting benefit to all
users of that LAN.
In this day of data over distance, size still matters, even if the distance
is only to a local hard drive. Put that drive on a LAN or WAN or over the
internet and it matters even more. As processors seem to increase in speed
at a greater rate than bandwidth does (if you discount 300 baud modems or
audio cassette tape drives vs hard disks and ponder how long we've had 56K
modems and 100mbit LANS), the advantage of smaller datatypes has only been
increasing with the passage of time.
Beware the situation where a user may want to append an 'A' or a 'B' to a
field that was spec'ed only to contain whole contain numbers, or those who
might one day need a 'none' or 'all' selection in the table rather than
having it unioined into a recordset. Only when you have the absolute
ability to constrain the data ('data' does not include formatting hyphens or
spaces or other fixed characters) to numerical digits can you take advantage
of the size differences between numeric and text datatypes. On the scale
most Access databased operate this may not seem very important but there is
still some advantage to be gained.
Hen
_________________________________________________________________
Protect your PC - get McAfee.com VirusScan Online
http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963