Yeah.
By the way these columns are searched (and named) it indicates that
they likely (pun intended) contain multiple values:
RecordID #00022 Keywords='this,that,another...'
A column with multiple values violates the first normal form: each column
should be atommic.
or another common approach:
RecordID #00022 Keyword1='this' Keyword2='that' Keyword3='another' ...
Here the record contains repeating columns of "like" data.
as opposed to separate occurrences of a single column in a child table:
keyword ParentID
record #7 this 00022
record #99 that 00022
record #2 another 00022
From a performance view, it generally means that the db engine needs
to read each record in the db and scan each of these fields for the
desired values to, satisfy the query.
Here, each record must be accessed and then scanned to determine
whether it is accepted or eliminated.
With a normalized situation, the target records can be located by
manipulating the indexes with no need to scan the fields (unless
partial keywords are used).
Records which do not contain the desired keyword(s) do *not* need to
be accessed, to be eliminated.
Most modern db engines are optimized to handle this situation quite
efficiently.
HTH
Dick
At 9:19 AM -0400 9/30/00, Bud wrote:
>On 9/30/00, Dick Applebaum penned:
>>Hmmm... 10 seconds to query sounds like some db redesign may be in order.
>>
>>This will vary with the db engine, but there are things you can do.
>>
>>I noticed that your db is denormalized (ProductsCategory,
>>ProductsKeyWords, and maybe ProductsStyleNumber). If you haven't
>>already tried it, you might experiment with normalizng these... & let
>>the db engine do its thing. (you might be surprised by the results)
>
>Normalized? Can you expand on that?
>--
>
>Bud Schneehagen - Tropical Web Creations
>
------------------------------------------------------------------------------
Archives: http://www.mail-archive.com/[email protected]/
To Unsubscribe visit
http://www.houseoffusion.com/index.cfm?sidebar=lists&body=lists/cf_talk or send a
message to [EMAIL PROTECTED] with 'unsubscribe' in the body.