Scid has a fast and powerful
The available criteria/fields are
When you sort a database which is not read-only, the results are saved immediately and the order of games is permanently changed. If this is not desired, one may first make the database read-only from the maintenance window, or sort the games in the clipbase.
When sorting a read-only database (or PGN archive) , the results cannot be saved and the order of games is lost when the file is closed.
When a database is sorted the Index File is altered but the Game File is not (leaving the game file records out of order relative to the Index File). This can result in slow tree, position and material/pattern searches. After sorting, one should reorder the game file by compacting it to maintain good search performance.
Additionaly, only databases sorted by ECO codes (and subsequently compacted) can use fast tree searches.