As I mentioned at the beginning of Chapter 1, SQL is a declarative programming language. In theory, you just have to say what you want to have done and then something works out how to do it. In the case of an Oracle database, that “something” is the CBO, and it should devise an appropriate execution plan for you. In theory you shouldn’t have to worry about getting incorrect results and you shouldn’t have to worry about performance. Since you are reading this book you have almost certainly realized that life isn’t as simple as that and that you do, in fact, have to worry quite a bit. With the exception of bugs, the results of a correctly written SQL statement will be correct, but optimal performance, or even acceptable performance, is far from guaranteed, even from a bug-free database.