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