de Martin LE TARNEC.

Resultados parciales


Aveces, no se requiere el resultado completo de una sentencia SQL, sino solamente las primeras filas (por ejemplo, para desplegar solamente los diez últimos mensajes; en este caso, es también común permitir a los usuarios navegar en los mensajes más antiguos) usando la navegación por página tradicional o la variante más moderna "barra de desplazamiento infinita". Sin embargo, la sentencia SQL relacionada usada por esta función puede causar problemas graves de rendimiento si deben ordenarse todos los mensajes para encontrar los más recientes. Por lo tanto, Order by en pipeline es un método muy poderoso para optimizar este tipo de sentencias.

Usar order by en pipeline no es solamente importante por el ahorro en ordenar el resultado, sino que permite entregar los primeros resultados sin tener que leer y ordenar todos los registros. Eso significa que order by en pipeline tiene un costo de inicio muy bajo. Por lo tanto, es posible abortar la ejecución después de obtener algunos registros sin deshacer los esfuerzos para preparar el resultado final.

Este capítulo demuestra cómo usar order by en pipeline para recuperar los datos de resultados parciales de manera eficiente. Aunque la sintaxis de estas sentencias varía de una base de datos a otras, la ejecución de las sentencias es muy similar. Una vez más eso demuestra que "todos ponen sus huevos en la misma canasta".

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

Contenido

  1. Seleccionar los registros Top-N — si se requieren solamente los primeros registros

  2. Devolver la próxima pagina — El “offset” y los métodos de búsqueda comparados

  3. Window-Functions — Pagination using analytic queries

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