Queries: dynamic content is all about queries and no matter how cool this sounds most of the time we face the need to improve the response time, improve performance to avoid user discomfort (nobody likes to wait more than 5 seconds for a rendered list).
A few days ago I was working with a site built with RedDot and LiveServer (Open Text products) and we found in some logs, warnings about the use of some target dynaments without a redundant database; basically what the warning recommended was the use of redundant database to accelerate the LiveServer content response. So I checked the documentation and what I found was interesting:
Target DynaMent queries are executed more quickly when there are
redundant database structures and indexes for the content attributes that are used as criteria
for the Target DynaMent.
A Target DynaMent allows to access specific content by comparing content attributes which are stored in a database, this has nothing to do with Verity (LiveServer search engine). This content is delivered in an xml format which can be formated with XSL, but this is for another topic.
Creating a redundant database structure is not difficult, in fact it's just some clicks to access the interface, name the redundant database structure, add the desire attributes - content attributes, not project attributes: content.Attribute instead of project.Attribute - and create the indexes, it's not to hard; what's complicated but really fun is to think the indexes structure, because a good implementation could help you to improve the response performance, you must choose carefully which attributes will be add to an index and after the redundant database structure has been created you must test with some queries using Target Dynaments to check performance and probably found a better index to create.
For example: after I created the redundant structure, most of the warnings disappeared so I started testing with some target dynaments: without the redundant database structure an xml result page with about 300 results took about 1.7 seconds to 2.5 seconds; with the redundant structure the same result page was displayed in about 0.7 seconds to 1.3 seconds.
It's great when you have this kind of tools that help you to improve your site performance but remember it's necessary to think carefully how to use this tools; this is something I learned in this project, don't play with databases unless you have a reason to do it.