Le istruzioni sono compilate in template, non in byte code. Ma sospetto che questo sia un problema semantico per la tua domanda. La risposta breve è sì, una dichiarazione preparata equivale alla compilazione.
L' articolo di Wikipedia sulle dichiarazioni preparate spiega una serie di elementi che dovrebbero aiutare a chiarire le cose.
1. Prepare: The statement template is created by the application and sent to the database
management system (DBMS). Certain values are left unspecified, called parameters,
placeholders or bind variables.
2. The DBMS parses, compiles, and performs query optimization on the statement template,
and stores the result without executing it.
3. Execute: At a later time, the application supplies (or binds) values for the
parameters, and the DBMS executes the statement (possibly returning a result).
E la seguente affermazione chiarisce che l'ottimizzazione (la maggior parte) avviene alla compilazione.
The overhead of compiling and optimizing the statement is incurred only once, although the statement is executed multiple times.
Ma ci sono casi in cui il DBMS deve fare un'ottimizzazione aggiuntiva al tempo della query.
Not all optimization can be performed at the time the prepared statement is compiled, for two reasons: the best plan may depend on the specific values of the parameters, and the best plan may change as tables and indexes change over time
L'articolo indica che DB2, Microsoft SQL Server, MySQL, Oracle e PostgreSQL supportano le istruzioni preparate. Ho usato istruzioni preparate con DB2 e posso verificare che funzionino come spiegato nell'articolo.