Ehm.
Op een MS SQL 2000 server worden de stored procedures wel degelijk gecompileerd.
Dit is natuurlijk wel
T-SQL.
Je moet voor de beeldvorming de Query Analyzer zien als je IDE waar je alle "valid syntax" in kwijt kan. Je kan de code laten controleren op fouten en daarna laten "executen".
Dit executen kan je zien in visuele vorm (show execution path).
Op het moment dat hij deze laat zien, dan kijkt de SQL Engine naar de opbouw van de query en vertaald (interpreteert) deze naar voor ons begrijpelijke afbeeldingen en de tijd die hij kwijt is per onderdeel van het proces.
kortom: De stored procedure bevat dus de gecompileerde query.
Om dit statement te bekrachtigen hierbij uit de help:
Stored Procedures
Stored procedures can make managing your database and displaying information about that database and its users much easier. Stored procedures are a precompiled collection of SQL statements and optional control-of-flow statements stored under a name and processed as a unit. Stored procedures are stored within a database; can be executed with one call from an application; and allow user-declared variables, conditional execution, and other powerful programming features.
Stored procedures can contain program flow, logic, and queries against the database. They can accept parameters, output parameters, return single or multiple result sets, and return values.
You can use stored procedures for any purpose for which you would use SQL statements, with these advantages:
You can execute a series of SQL statements in a single stored procedure.
You can reference other stored procedures from within your stored procedure, which can simplify a series of complex statements.
The stored procedure is compiled on the server when it is created, so it executes faster than individual SQL statements.
The functionality of a stored procedure is dependent on the features offered by your database. For more details about what a stored procedure can accomplish for you, see Stored Procedures.
Het is dus ook belangrijk dat een programmeur die gebruik maakt van een MS SQL database zoveel mogelijk via een stored procedure laat lopen ipv zelf allerlei SQL statements af te vuren op de RDBMS.
Business Logic zoveel mogelijk proberen op te vangen in Stored Procedures.
Zoals Microsoft dat zo mooi zegt:
SQL Server stored procedures can provide even greater performance gains when they include business services logic because it moves the processing to the data, rather than moving the data to the processing.