I'm trying to understand the (radical) difference in performance between two different configurations we're testing. Can you tell me what the *_T.btr and *_D.btr files signify? On one implementation they're large, but on the implementation that's performing unexplainably slowly they're very small, and dropping and recreating the index doesn't change them.
They are the new and delete lists, which track rows that have changed since the last index update. The more updates to a table since the last index update, the slower searches will become (all else being equal), as these rows must be linearly searched. The files will be larger too. On an up-to-date index (just created or updated) they will normally be less than a hundred bytes or so.
Search speed is also affected by the query itself, index expressions, table size and rows, and the nature of the table data.