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

Allows subclassing list/tuple.
Also, allow more iterable types.
Also, avoid building the type tuple on each call.
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.