de Martin LE TARNEC.

Funciones


El índice sobre LAST_NAME ha mejorado considerablemente el rendimiento, pero eso requiere hacer la búsqueda con el mismo tipo (minúscula/mayúscula) con el que está almacenado en la base de datos. Esta sección explica cómo aumentar las restricciones sin bajar el rendimiento.

DB2

DB2 soporta los índices basados en funciones zOS por un tiempo, pero solamente desde la versión 10.5 en LUW. El uso de funciones definidas por usuarios dentro de un índice no está permitido.

La solución alternativa es crear una columna real en la tabla incluyendo el resultado de la función o de la expresión. La columna debe ser mantenida por un trigger o por una capa aplicativa; de hecho, cualquier cosa es más apropiada. La nueva columna puede ser indexada. El filtro where debe usar la nueva columna (sin la expresión).

MySQL

MySQL sí distingue mayúsculas y minúsculas por defecto, pero eso puede ser controlado a nivel de las columnas. A partir de la versión 5.7, MySQL puede crear índices sobre columnas generadas.

La solución alternativa para las versiones anteriores es crear una columna real en la tabla incluyendo el resultado de la función o de la expresión. La columna debe ser mantenida por un trigger o por una capa de la aplicación. La nueva columna puede ser indexada. El filtro where debe usar la nueva columna (sin la expresión).

Oracle

La base de datos Oracle soporta los índices basados en funciones desde la versión 8.i. Se agregaron adicionalmente columnas virtuales en la versión 11g.

PostgreSQL

PostgreSQL soporta por completo los índices basados sobre expresiones desde la versión 7.4 (parcialmente soportada desde la versión 7.2)

SQL Server

SQL Server soporta las columnas virtuales ("computed columns") que pueden ser indexadas desde la versión 2000.

Si te gusta mi manera de explicar, te encantará mi libro.

Contenido

  1. Búsqueda insensible a mayúsculas y minúsculasUPPER y LOWER

  2. Funciones definidas por el usuario — Restricciones de las funciones basadas en índices

  3. Sobre-indexar — Evitar la redundancia

Previous pageNext page

Acerca del autor

Foto de Markus Winand

Markus Winand enseña eficientemente SQL, en casa y online. Minimiza el tiempo de desarrollo utilizando moderno SQL y optimiza el tiempo de ejecución con indexación inteligente. Para ello también ha publicado el libro SQL Performance Explained.

“Use The Index, Luke” de Markus Winand se halla bajo licencia Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
Aspectos legales | Contacto | SIN GARANTÍA | Marcas | Privacy | CC-BY-NC-ND 3.0 licencia