Correct Answer: DE
Note:
Oracle SQL is parsed before execution, and a hard parse includes these steps: *
1.
Loading into shared pool - The SQL source code is loaded into RAM for parsing. (the "hard" parse step)
2.
Syntax parse - Oracle parses the syntax to check for misspelled SQL keywords.
3.
Semantic parse - Oracle verifies all table and column names from the dictionary and checks to see if you are authorized to see the data.
4.
Query Transformation - If enabled (query_rewrite=true), Oracle will transform complex SQL into simpler, equivalent forms and replace aggregations with
materialized views, as appropriate.
5.
Optimization - Oracle then creates an execution plan, based on your schema statistics (or maybe with statistics from dynamic sampling in 10g).
6.
Create executable - Oracle builds an executable file with native file calls to service the SQL query.
*
The parsing process performs two main functions:
o Syntax Check: is the statement a valid one. Does it make sense given the SQL grammar documented in the SQL Reference Manual. Does it follow all of the
rules for SQL.
o Semantic Analysis: Going beyond the syntax ? is the statement valid in light of the objects in the database (do the tables and columns referenced exist). Do you
have access to the objects ? are the proper privileges in place? Are there ambiguities in the statement ? for example if there are two tables T1 and T2 and both
have a column X, the query ?select X from T1, T2 where ?? is ambiguous, we don?t know which table to get X from. And so on.
So, you can think of parsing as basically a two step process, that of a syntax check to check the validity of the statement and that of a semantic check ? to ensure
the statement can execute properly.
Reference: Oracle hard-parse vs. soft parse