 <p>I suppose it would let them support multiple ranges. For example, they can return all dates between 1/1/2008 and 1/1/2009 AND 1/1/2006 and 1/1/2007 to compare 2006 data to 2008 data. You couldn't do that with a single pair of bound parameters. Also, I don't know how Oracle does it's query plan caching for views, but perhaps it has something to do with that? With the date columns being checked as part of the view the server could cache a plan that always assumes the dates will be checked.</p> <p>Just throwing out some guesses here :)</p> <p>Also, you wrote:</p> <blockquote> <p>I should mention that they use transactions and per-client locks, so it is guarded against most concurrency problems.</p> </blockquote> <p>While that may guard against data consistency problems due to concurrency, it hurts when it comes to performance problems due to concurrency.</p>