Semi-joins and anti-joins are two closely related join methods (options of join methods, actually) that the Oracle optimizer can choose to apply when retrieving information. The SQL language is designed to specify the set of data that the user wishes to retrieve, but to leave the decisions as to how to actually navigate to the data up to the database itself. Therefore, there is no SQL syntax to specifically invoke a particular join method. Of course, Oracle does provide the ability to give the optimizer directives via hints. This chapter will cover these two join optimization options, the SQL syntax that can provoke them, requirements for and restrictions on their use, and finally, some guidance on when and how they should be used.
Unable to display preview. Download preview PDF.