I have a SharePoint list holding 9500 records. I have created about 9 views so that I overcome the 5000 threshold limit. To create these views I have indexed certain columns on which I have applied the view filter. But in one of the views where the record limit is the maximum (3900), after filtering system gives an error the view threshold is reached when the field filters are tried to use. Please suggest if there is some solution to this other than increasing the threshold.
You mentioned that you have indexed the columns, but it still sounds to me like an indexing issue. I would double check that column you are filtering on is indeed indexed. From this article:
The threshold limit error message shown above could even pop-up when attempting to load items from a view that doesn’t even display more than 5000 items. How come? Well this is mostly due to the fact there’s a filter on a non-indexed column. For instance let’s say you have a view called “Recently modified” that shows all items that have been modified since last week, but the “Modified” column is not indexed. In that case, SharePoint will have to load each single item in order to filter which ones fit the filter criteria and which ones don’t. Eventually, even if there are less than 5000 items modified since last week, you might still encounter the error mentioned above, if the list itself contains more than 5000 items.
Are any of your columns a lookup column by any chance? If so, this might be relevant to you.
I had faced a similar issue and the only option without increasing the threshold was to add more filters or update filter criteria in the view and ensure that the first filter field of the view is indexed.It doesn't matter if the 2nd or subsequent filter fields are indexed or not. This is because the threshold limit is not based on the number of results returned by the view rather it is dependent on number records scanned at the database(table) level. So, if the first filter criteria itself returns more records than the threshold the SQL query engine has to scan all the records which will throw threshold exceed exception.