Caché SQL Optimization Guide
Introduction to SQL Performance Optimization
Caché SQL supports several features that optimize SQL performance.
Table Definition Optimization
SQL performance is fundamentally dependent upon good data architecture. Dividing your data into multiple tables and establishing relationships between those tables is essential to efficient SQL. How to define tables and their relations to each other is beyond the scope of this book.
This book describes the following operations to optimize a table definition. These operations require that the table be defined, but do not require the table to be populated with data:
: you can define an index for a table field or group of fields. You can define several different type of indices: standard, bitmap, bitslice, and bitmap extent. SQL optimization uses the defined indices, rather than the data values themselves, to access specific records for a query, update, or delete operation.
: you can freeze Data Definition execution plans. (Frozen Plans are also used to freeze query plans).
You can perform the following operations to optimize table access based on analysis of typical data in the table:
: examines typical table data and generates ExtentSize (number of rows), Selectivity (percent of rows having a specific value), and BlockCount metadata. The query optimizer uses this information to determine the most efficient query execution plan.
Selectivity and Outlier Selectivity
: determines the percent of rows having a specific value for a field, and whether one value is an outlier value, a value significantly more common than the other values for that field.
You can perform the follow operations to optimize the execution of a specific query. These query optimizations use existing table definition and table data optimizations: