So eventually Soren it has turned out that your problem is the same as mine.
Some databases require a transaction even for SELECT. I have not been doing anything with databases for a couple of years now. Several years ago I used "interbase" database. I was not satisfied with automatic built-in transaction control in database components so decided to do it manually. It was a lot of work giving the user a message about the fields that have been changed by another user if transaction failed. I had to show two copies of the record, the changed one and what the user wanted to update.
That is a pity your SELECT cannot use indices. It must be a pretty complicated query. Sometimes a compound index can be used or at least for some fields and it should speed up the query.
Some databases require a transaction even for SELECT. I have not been doing anything with databases for a couple of years now. Several years ago I used "interbase" database. I was not satisfied with automatic built-in transaction control in database components so decided to do it manually. It was a lot of work giving the user a message about the fields that have been changed by another user if transaction failed. I had to show two copies of the record, the changed one and what the user wanted to update.
That is a pity your SELECT cannot use indices. It must be a pretty complicated query. Sometimes a compound index can be used or at least for some fields and it should speed up the query.