Oracle Database - Sample SQL Clause for Table Scans/Access

> Database > Oracle Database

Table of Contents

1 - About

A sample table scan retrieves a random sample of data from a simple table or a complex SELECT statement, such as a statement involving joins and views.

This access path is used when a statement's FROM clause includes:

  • the SAMPLE clause
  • or the SAMPLE BLOCK clause.

This clause is used for instance to gathered the table statistics. The estimate percent is the number of the sample clause.

To perform a sample table scan when sampling by rows with the SAMPLE clause, Oracle reads a specified percentage of rows in the table. To perform a sample table scan when sampling by blocks with the SAMPLE BLOCK clause, Oracle reads a specified percentage of table blocks.

Example below uses a sample table scan to access 1% of the employees table, sampling by blocks.

SELECT * FROM employees SAMPLE BLOCK (1); 

The Oracle Database - Explain Plan output for this statement might look like this:

-------------------------------------------------------------------------
| Id  | Operation            |  Name       | Rows  | Bytes | Cost (%CPU)|
-------------------------------------------------------------------------
|   0 | SELECT STATEMENT     |             |     1 |    68 |     3  (34)|
|   1 |  TABLE ACCESS SAMPLE | EMPLOYEES   |     1 |    68 |     3  (34)|
-------------------------------------------------------------------------
Advertising