dbo:abstract
|
- In relational databases, a condition (or predicate) in a query is said to be sargable if the DBMS engine can take advantage of an index to speed up the execution of the query. The term is derived from a contraction of Search ARGument ABLE. It was first used by IBM researchers as a contraction of Search ARGument, and has come to mean simply "can be looked up by an index." A query failing to be sargable is known as a non-sargable query and typically has a negative effect on query time, so one of the steps in query optimization is to convert them to be sargable. The effect is similar to searching for a specific term in a book that has no index, beginning at page one each time, instead of jumping to a list of specific pages identified in an index. The typical situation that will make a SQL query non-sargable is to include in the WHERE clause a function operating on a column value. The WHERE clause is not the only clause where sargability can matter; it can also have an effect on ORDER BY, GROUP BY and HAVING clauses. The SELECT clause, on the other hand, can contain non-sargable expressions without adversely affecting the performance. Some database management systems, for instance PostgreSQL, support functional indices. Conceptually, an index is simply a mapping between a value and one or more locations. With a functional index, the value stored in the index is the output of the function specified when the index is created. This capability expands what is sargable beyond base column expressions.
* Sargable operators: <span class="o">=</span><span class="p">,</span> <span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="p">,</span> <span class="o">>=</span><span class="p">,</span> <span class="o"><=</span><span class="p">,</span> <span class="k">BETWEEN</span><span class="p">,</span> <span class="k">LIKE</span><span class="p">,</span> <span class="k">IS</span> <span class="p">[</span><span class="k">NOT</span><span class="p">]</span> <span class="k">NULL</span>
* Sargable operators that rarely improve performance: <span class="o"><></span><span class="p">,</span> <span class="k">IN</span><span class="p">,</span> <span class="k">OR</span><span class="p">,</span> <span class="k">NOT</span> <span class="k">IN</span><span class="p">,</span> <span class="k">NOT</span> <span class="k">LIKE</span> (en)
- 検索引数可能 (英: sargable)とは、関係データベースにおいて、DBMSエンジンがインデックスを利用してクエリの実行を高速化できる述語や条件のこと。日本語の文脈でもSARGableのように記載されることがある。この用語は、 Search ARGumentABLEの短縮形に由来する。検索引数可能でないクエリは、non-sargableクエリと呼ばれ、インデックスが効かない。 (ja)
|