Hint
Hint
is a clause in a For instruction that accesses the database and instructs the database system the best strategy to follow to get the required data.
For [abv]key1 Hint Key key2For [abv]key1 Hint Key =expressionFor [abv]key1 Hint Key key2 Where condition For [abv]key1 With NohintFor [abv]key1 Where condition With Nohint
# Access to customer data (table BPCUSTOMER with two keys : BPC0 (BPCNUM column), BPC1 (BPCNAM column).# This hint is useless because using the BPC1 key is obvious if the condition is placed on the key valueLocal File CUSTOMERS [BPC]For [BPC]BPC0 Hint Key BPC1 Where pat(BPCNAM,"J*")<>0...Next# Here we give the rank of the key to be used and keynam gives back the name of the key in the formulaLocal Integer KEYNUM=1For [BPC]BPC0 Hint Key =[G:BPC]keynam(KEYNUM) Where pat(BPCNAM,"J*")<>0...Next# Let's make the database to define the strategy to get the customer records in BPC0 order (default rule)For [BPC]BPC0 Where pat(BPCNAM,"J*")<>0 With Nohint...Next# Let's make the database to define the strategy to get the customer records without giving an order (default rule)For [BPC]reckey Where pat(BPCNAM,"J*")<>0 With Nohint...Next
This type of syntax should be reserved for exceptional cases, for the following reasons:
Hint
can have a positive effect on a database, and a negative one on another database. This makes the optimization database dependent.Hint
can improve performance, do not forget that every new database version can enhance the situation and make the Hint
clause useless or even harmful in term of performance.