Вы находитесь на странице: 1из 6

1) La consulta SQL se vuelve ms rpido si utiliza los nombres de las columnas reales en instruccin

SELECT en lugar de que '*'.


Por ejemplo: Escribe la consulta como
SELECT id, first_name, last_name, age, subject FROM student_details;
En lugar de:
SELECT * FROM student_details;

2) Clausula HAVING se utiliza para filtrar las filas despus de que se han seleccionado todas las filas.
Es como un filtro. No utilice la clusula para ningn otro propsito HAVING.
Por ejemplo: Escribe la consulta como
SELECT subject, count(subject)
FROM student_details
WHERE subject != 'Science'
AND subject != 'Maths'
GROUP BY subject;
En lugar de:
SELECT subject, count(subject)
FROM student_details
GROUP BY subject
HAVING subject!= 'Vancouver' AND subject!= 'Toronto';

3) A veces es posible que tenga ms de un subconsultas en la consulta principal. Trate de minimizar el
nmero de bloque subconsulta en su consulta.
Por ejemplo: Escribe la consulta como
SELECT name
FROM employee
WHERE (salary, age ) = (SELECT MAX (salary), MAX (age)
FROM employee_details)
AND dept = 'Electronics';
En lugar de:
SELECT name
FROM employee
WHERE salary = (SELECT MAX(salary) FROM employee_details)
AND age = (SELECT MAX(age) FROM employee_details)
AND emp_dept = 'Electronics';

4) Uso del operador EXISTS, IN y uniones de tablas apropiadamente en su consulta.
a) Generalmente en cuenta el rendimiento ms lento.
b) IN es eficiente cuando la mayor parte de los criterios de filtro se encuentra en la sub-consulta.
c) Existe es eficiente cuando la mayor parte de los criterios de filtro esta en la consulta principal.
Por ejemplo: Escribe la consulta como
Select * from product p
where EXISTS (select * from order_items o
where o.product_id = p.product_id)
En lugar de:
Select * from product p
where product_id IN
(select product_id from order_items

5) USE existe en lugar de DISTINCT cuando se utiliza une que implica mesas tienen relacin uno-a-
muchos.
Por ejemplo: Escribe la consulta como
SELECT d.dept_id, d.dept
FROM dept d
WHERE EXISTS ( SELECT 'X' FROM employee e WHERE e.dept = d.dept);
En lugar de:
SELECT DISTINCT d.dept_id, d.dept
FROM dept d,employee e
WHERE e.dept = e.dept;

6) Trate de utilizar UNION ALL en lugar de UNION.
Por ejemplo: Escribe la consulta como
SELECT id, first_name
FROM student_details_class10
UNION ALL
SELECT id, first_name
FROM sports_team;
En lugar de:
SELECT id, first_name, subject
FROM student_details_class10
UNION
SELECT id, first_name
FROM sports_team;

7) Tenga cuidado al utilizar las condiciones de la clAusula WHERE.
Por ejemplo: Escribe la consulta como
SELECT id, first_name, age FROM student_details WHERE age > 10;
En lugar de:
SELECT id, first_name, age FROM student_details WHERE age != 10;
Escribe la consulta como
SELECT id, first_name, age
FROM student_details
WHERE first_name LIKE 'Chan%';
En lugar de:
SELECT id, first_name, age
FROM student_details
WHERE SUBSTR(first_name,1,3) = 'Cha';
Escribe la consulta como
SELECT id, first_name, age
FROM student_details
WHERE first_name LIKE NVL ( :name, '%');
En lugar de:
SELECT id, first_name, age
FROM student_details
WHERE first_name = NVL ( :name, first_name);
Escribe la consulta como
SELECT product_id, product_name
FROM product
WHERE unit_price BETWEEN MAX(unit_price) and MIN(unit_price)
En lugar de:
SELECT product_id, product_name
FROM product
WHERE unit_price >= MAX(unit_price)
and unit_price <= MIN(unit_price)
Escribe la consulta como
SELECT id, name, salary
FROM employee
WHERE dept = 'Electronics'
AND location = 'Bangalore';
En lugar de:
SELECT id, name, salary
FROM employee
WHERE dept || location= 'ElectronicsBangalore';
Utilice la expresin no la columna en un lado de la consulta, ya que Sera procesada antes.
Escribe la consulta como
SELECT id, name, salary
FROM employee
WHERE salary < 25000;
En lugar de:
SELECT id, name, salary
FROM employee
WHERE salary + 10000 < 35000;
Escribe la consulta como
SELECT id, first_name, age
FROM student_details
WHERE age > 10;
En lugar de:
SELECT id, first_name, age
FROM student_details
WHERE age NOT = 10;
8) Utilice DECODE para evitar el escaneo de mismas filas o unirse a la misma mesa de manera
repetitiva. DECODE tambin se puede hacer utilizado en lugar de GROUP BY u ORDER BY.
Por ejemplo: Escribe la consulta como
SELECT id FROM employee
WHERE name LIKE 'Ramesh%'
and location = 'Bangalore';
En lugar de:
SELECT DECODE(location,'Bangalore',id,NULL) id FROM employee
WHERE name LIKE 'Ramesh%';
9) Para almacenar objetos binarios grandes, el primer lugar en el sistema de archivos y agregar la ruta
del archivo en la base de datos.
10) Para escribir consultas que proporcionan un rendimiento eficiente sigue las reglas generales
estndar SQL.
a) Caso de uso nico para todos los verbos de SQL
b) Comience todos los verbos de SQL en una nueva linea
c) Separar todas las palabras con un solo espacio
d) Verbos de alineacin derecha o izquierda en el verbo inicial SQL

Вам также может понравиться