>When a single value in an indexed column changes, how much work does the db do to keep the index up-to-date?
That depends on the index structure, it may have to rebalance a tree, or in the case of a B+ tree (which is always balanced) it may have to split/create nodes.
It all comes down the the workload, if your updating the data just as often as retrieving it, I think the index will cause more overhead than it's worth. You should do some offline profiling to check though.
The other point here is that you don't necessarily know how the DB will evaluate your query. If it's
Code:
SELECT {...}
FROM Table
ORDER BY views
than the index is likely used (since the data can be retrieved in order, avoiding the sort), however, if it's more like:
Code:
SELECT {...}
FROM Table
WHERE <Predicate>
ORDER BY views
the DB may chose to use another index based on the predicate, and your views index is maintained for nothing. Similarly, if your joining tables the evaluation plans may vary.