Avoid a test in the inner loop.
Mokey patch Shared.DC.ZRDB.sqltest.SQLTest .

Allows subclassing list/tuple.
Only compute indexation ZSQLMethod parameter values when accessed.

Several ZSQLMethods do tests on parameter values, causing other parameter
values to be discarded (ie not indexed). A pseudo-code example is
  if isMovement[x]:
    append(getPrice[x])
Persons really need to be indexed first.

Preferences were reindexed early, because they are needed
to index documents requiring access to a conversion server.
This must not be required to reindex users (which just happen
to be Person documents so far) as they are needed to index
security properly and categories.
Do a shallow reindexation of person module on first pass.

Person subobjects are not needed after first pass, so don't
waste time indexing them.