Desafío: Optimización de Consultas
Suponga que queremos recuperar solo los números de cuenta que han realizado al menos una transacción.
En esta tarea, tenemos una consulta que no está optimizada. Su tarea es reescribirla de una manera más óptima.
A continuación se muestra una lista de las principales técnicas de reescritura de consultas para mejorar la optimización:
-
Especificar columnas explícitamente: en lugar de usar el comodín asterisco (
*), mencione explícitamente los nombres de las columnas en las consultas para mejorar el rendimiento, la legibilidad y el mantenimiento; -
Minimizar subconsultas: reduzca el uso de subconsultas para optimizar el rendimiento de la consulta. Considere alternativas como uniones (joins) o tablas derivadas para evitar la complejidad y la sobrecarga;
-
Evitar operadores IN repetidos: limite el uso del operador
INen las consultas para prevenir impactos en el rendimiento. En su lugar, considere utilizar cláusulasJOINoEXISTSpara obtener planes de ejecución más eficientes; -
Organizar uniones lógicamente: comience las uniones SQL con la tabla principal y luego únase con tablas relacionadas para optimizar la organización de la consulta y la optimización del motor de base de datos;
-
Utilizar condiciones WHERE restrictivas: mejore el rendimiento de la consulta incluyendo condiciones restrictivas en la cláusula
WHEREpara filtrar filas y aumentar la velocidad de ejecución; -
Refactorizar el código en procedimientos almacenados o funciones: encapsule segmentos de código repetitivos en procedimientos almacenados o funciones definidas por el usuario para la reutilización del código, modularidad y un mantenimiento más sencillo. Esto puede reducir la redundancia y optimizar las consultas SQL.
Swipe to start coding
Su tarea es escribir una consulta que devuelva una lista de todos los números de cuenta que han realizado al menos una transacción (transferido dinero a otra cuenta). Los resultados deben estar ordenados en orden ascendente por número de cuenta.
Para que su consulta sea más eficiente y legible, siga estos pasos:
- Seleccione solo la columna
account_number; - Utilice un
INNER JOINentre las tablasBankAccountsyTransactions; - No utilice el operador
INni subconsultas; - Ordene el resultado por
account_numberen orden ascendente.
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Can you show me the original unoptimized query?
What database system are we using for this task?
Can you provide an example of the tables involved?
Awesome!
Completion rate improved to 4.55
Desafío: Optimización de Consultas
Desliza para mostrar el menú
Suponga que queremos recuperar solo los números de cuenta que han realizado al menos una transacción.
En esta tarea, tenemos una consulta que no está optimizada. Su tarea es reescribirla de una manera más óptima.
A continuación se muestra una lista de las principales técnicas de reescritura de consultas para mejorar la optimización:
-
Especificar columnas explícitamente: en lugar de usar el comodín asterisco (
*), mencione explícitamente los nombres de las columnas en las consultas para mejorar el rendimiento, la legibilidad y el mantenimiento; -
Minimizar subconsultas: reduzca el uso de subconsultas para optimizar el rendimiento de la consulta. Considere alternativas como uniones (joins) o tablas derivadas para evitar la complejidad y la sobrecarga;
-
Evitar operadores IN repetidos: limite el uso del operador
INen las consultas para prevenir impactos en el rendimiento. En su lugar, considere utilizar cláusulasJOINoEXISTSpara obtener planes de ejecución más eficientes; -
Organizar uniones lógicamente: comience las uniones SQL con la tabla principal y luego únase con tablas relacionadas para optimizar la organización de la consulta y la optimización del motor de base de datos;
-
Utilizar condiciones WHERE restrictivas: mejore el rendimiento de la consulta incluyendo condiciones restrictivas en la cláusula
WHEREpara filtrar filas y aumentar la velocidad de ejecución; -
Refactorizar el código en procedimientos almacenados o funciones: encapsule segmentos de código repetitivos en procedimientos almacenados o funciones definidas por el usuario para la reutilización del código, modularidad y un mantenimiento más sencillo. Esto puede reducir la redundancia y optimizar las consultas SQL.
Swipe to start coding
Su tarea es escribir una consulta que devuelva una lista de todos los números de cuenta que han realizado al menos una transacción (transferido dinero a otra cuenta). Los resultados deben estar ordenados en orden ascendente por número de cuenta.
Para que su consulta sea más eficiente y legible, siga estos pasos:
- Seleccione solo la columna
account_number; - Utilice un
INNER JOINentre las tablasBankAccountsyTransactions; - No utilice el operador
INni subconsultas; - Ordene el resultado por
account_numberen orden ascendente.
Solución
¡Gracias por tus comentarios!
single