# Avoiding compiling SQL statements

When you submit an SQL statement to Derby, Derby compiles and then executes the statement. Compilation is a time-consuming process that involves several steps, including optimization, the stage in which Derby makes its statement execution plan. A statement execution plan includes whether to use an index, the join order, and so on.

Unless there are significant changes in the amount of data in a table or new or deleted indexes, Derby will probably come up with the same statement execution plan for the same statement if you submit it more than once. This means that the same statements should share the same plan, and Derby should not recompile them. Derby allows you to ensure this by using the statement cache.

- Using the statement cache
  The statement cache is enabled by default. You can use it to avoid extra compilation overhead.

Parent topic: Application and database design issues
Related concepts
Avoiding table scans of large tables
Shielding users from Derby class-loading events