Oracle Exadata Database Machine

Smart Scan


Oracle Exadata's architecture comprises multiple database servers connected to multiple intelligent storage servers using a high-speed, high-throughput, low-latency network using RDMA and Oracle database optimized protocols. The advantage of such an architecture is to allow the software to run on all servers within the architecture. Database sizes continue to increase for data warehouse and analytics workloads as enterprises collect and retain more data. In traditional architectures, using database servers and non-intelligent SANs or direct-attached storage, processing these ever-increasing volumes means sending vast amounts of data from the SAN to the database servers only for most rows and columns to be discarded.

Oracle Exadata System Software includes Smart Scan technology (also known as SQL Offload), which offloads data-intensive SQL operations from the database servers directly into the storage servers. By pushing SQL processing to the storage servers, data filtering and processing occur immediately and in parallel across all storage servers, as data is read from disk and flash. Only the rows and columns directly relevant to a query are sent to the database servers. By filtering rows and columns at the storage server, not only does less data get sent to the database servers, but the scan typically runs faster by virtue of the increased aggregate number of CPUs available within the storage servers, which results in greater parallelism.

Smart Scan is implemented transparently in Oracle Exadata and Oracle Database 11G and higher and includes optimizations for both compressed and encrypted tables, allowing enterprises to process significant data volumes while ensuring data is protected. Smart Scan is automatically initiated by Oracle Database when the optimizer chooses to perform full table, fast full index, or full bitmap index scans. To do so, it pushes the column projections and SQL predicates to the storage servers. In turn, the storage servers use this metadata to filter out all rows that do not meet the predicate criteria and return only the columns of interest to the database servers for further processing, such as aggregation.

Take, for example, this code:

   and  TOTAL_ORDER_AMOUNT >= 500;

When evaluated by Oracle Database on Exadata, the system will offload the scanning of the SALES_ORDERS table to the Exadata storage, filter out all sales orders that are less than $500, filter out sales not made in the North American region, and return the relevant customer information (ie customer name). This reduces the data transferred to the database servers by orders of magnitude.

Smart Scan greatly accelerates query execution, eliminates bottlenecks, and significantly reduces the CPU usage of the database servers. Exadata Smart Scan works in collaboration with Exadata Storage Indexes, which reduces the amount of IO required to satisfy the smart scan process.

More Information

Read up on the latest information for Smart Scan, uniquely available on Exadata here: