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 (LUW)

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

You can’t learn everything in one day. Subscribe the newsletter via E-Mail, Bluesky or RSS to gradually catch up. Have a look at modern-⁠sql.com as well.

Acerca del autor

Foto de Markus Winand

Markus Winand es defensor del resurgimiento del SQL. Su misión es la de presentar a los desarrolladores la evolución de SQL en el siglo XXI. Es posible contratar a Markus según disponibilidad o como orador o consultor en winand.at.

Adquiere tu libro

Portada de “Rendimiento SQL explicado”: Ardilla corriendo en la hierba

La esencia del tuning de SQL en 200 páginas

Compra ahora
(libro de bolsillo y/o PDF)

Contratar a Markus

La manera más rápida y fácil de beneficiarse de su extenso conocimiento y experiencia.
Aprende más »

Entrar en contacto con Markus

Suscríbete a listas de correoRSS FeedMarkus Winand en LinkedInMarkus Winand en XINGMarkus Winand en TwitterMarkus Winand en Bluesky
Copyright 2017-2025 Martin LE TARNEC, Markus Winand. All righs reserved.
Aspectos legales | Contacto | SIN GARANTÍA | Marcas | Privacidad y RGPD