Next:  Using More Than 
Up:  Our Approach
 Previous:  Our Approach
 
 
In this first generalization of the standard indexing technique
(indexing on the first argument) only one variable-free argument column in each
indexing partition is used (this argument column need not be the same in
all partitions).
The heuristics for finding the partitions is the following simple greedy
(don't-care-choice) algorithm (1N-Algorithm):
-  For each argument column 
, count the number of non-variable
    arguments down to the first variable or the end of the procedure
    (
)
   -  
   -  If 
 then use the first clause as a separate partition
   (without indexing)
   else -  
	   -  if 
 then 
 else choose 
	    
 with the most selective
 elements
	   -  use the first 
 clauses as a partition and index 
	    them on the 
 argument
	 
   -  If any clauses are left go to 1 to form further partitions else stop
 
Using this algorithm on the example, the following two partitions
are formed:
- 
    
-  
       -  
       -  use first clause without indexing
      
 -  go to 1 with clauses 2 - 9
  
 
   - 
    
-  
, 
       -  
       -  
       -  use clauses 2 - 9 with indexing on 
 argument
     
 

Resulting index tree (``/'' in else field is used here as a
shortcut for a pointer to fail; arcs are directed in the natural
top-to-down order):
 
 
 
 
 
 Next:  Using More Than 
Up:  Our Approach
 Previous:  Our Approach