You should run an EXPLAIN for a query with multiple Joins especially if joining columns are non-index columns
Look for high estimated runtime's (more than one to three hours) or a large row count (several hundred million to billions in the case of large tables)
If estimated rowsdon'tmatch your expected row count, especiallyif they are exponentially high, don't execute a query before attempting to optimize it
The explain plan of an executing query can be checked from the Viewpoint interface at the time of running
The DBQLExplainTbltable in the DBCdatabase holds the explaintextof already executed queries. The DBQLruleset to collect the execution plan needs to be enabled to store data in this table.
Check for partition elimination on large tables (most fact tables) if the PPI column is used; mismatched data types, character sets (Unicodeversus Latin),applying functions, or inequality on the PPI column will prevent partition elimination.
If you see steps with estimated row count = number of AMPs on your system in a distributed or duplication step, it could mean that stats are missing or stale on that table.
Productjoins can be a problem, but can be the best option when one of the tables has very few rows (for example, a table with anumberof rows less than the number of AMPs on the system).