soft parse vs hard parse
hi guys,
I am reading a [document |http://www.jlcomp.demon.co.uk/faq/soft_hard_parse.html] where the parsing of a sql statement is described as:
In summary,
+1. Perform syntax check+
+2. Perform semantic check+
+3. Perform hash function+
+4. Perform library cache lookup+
+5. If hash value found then+
+6. .....If command is identical to existing one in cache then+
+7. ..........If the objects referenced in the cached command are the same as the ones in the new command then+
+8. ...............This is a soft parse, go to step 11+
+9. This is a hard parse, build parse tree+
+10. Build execution plan+
+11. Execute plan.+
However, in a book that I am reading, it says that "parse locks are acquired" to make sure that the objects referenced by the statement are not changed. But the above does not make mention of this. I'm thinking either the author forgot it, either it is so obvious that it is not even worth a mention, or either my book is wrong.
Any help appreciated.