Otimização de consultas e gerenciamento de transações
Seminário: Otimização de consultas e gerenciamento de transações. Pesquise 862.000+ trabalhos acadêmicosPor: wpaml2013 • 20/11/2013 • Seminário • 1.536 Palavras (7 Páginas) • 219 Visualizações
Atividade 03 - Otimização de Consultas e Gerenciamento de Transações
1) A consulta sql se torna Mais rápido, se você usar OS nomes reais Colunas instruà § à £ o Selecione los Vez de Opaco '*'.
Por Exemplo: Como Escrever uma consulta
SELECT id, first_name, last_name, age, subject FROM student_details;
Em Vez de:
SELECT * FROM student_details;
2) TENDO CLA Usula ¡Ã © USADA par Filtrar como Linhas DEPOIS de TODAS como Linhas està £ o selecionadas. à ‰ Como hum filtro. Nà £ o adianta ter Clá ¡Usula parágrafos quaisquer barbatanas. To Us Link Por Exemplo: Escrever uma consulta Como
SELECT subject, count(subject)
FROM student_details
WHERE subject != 'Science'
AND subject != 'Maths'
GROUP BY subject;
Em Vez de:
SELECT subject, count(subject)
FROM student_details
GROUP BY subject
HAVING subject!= 'Vancouver' AND subject!= 'Toronto';
3) As Vezes, você pode ter mais de uma subconsulta los SUA consulta diretor. . Tente minimizar o número de blocos de subconsulta por consulta. Por Exemplo: Escrever uma consulta como:
SELECT name
FROM employee
WHERE (salary, age ) = (SELECT MAX (salary), MAX (age)
FROM employee_details)
AND dept = 'Electronics';
Em Vez 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) Operador de uso existe, e Juna § Ãμes de Tabela adequadamente los SUA consulta.
a) Normalmente los TEM o desempenho Mais lento.
b) em um © Eficiente when a maior parte dos critérios de filtro està ¡na sub-consulta.
c) Existe uma © Eficiente when a maioria dos critérios de filtro são na consulta diretor.
Por Exemplo: Como Escrever uma consulta
Select * from product p
where EXISTS (select * from order_items o
where o.product_id = p.product_id)
Em Vez de:
Select * from product p
where product_id IN
(select product_id from order_items
5) Uso EXISTE los Vez de DISTINCT AO USAR junta Que ENVOLVE Tabelas com um-para-muitos. Por Exemplo: Escrever uma consulta Como
SELECT d.dept_id, d.dept
FROM dept d
WHERE EXISTS ( SELECT 'X' FROM employee e WHERE e.dept = d.dept);
Em Vez de:
SELECT DISTINCT d.dept_id, d.dept
FROM dept d,employee e
WHERE e.dept = e.dept;
6) Tente USAR UNION ALL não Lugar de UNIA £ o. Por Exemplo:Como Escrever uma consulta
SELECT id, first_name
FROM student_details_class10
UNION ALL
SELECT id, first_name
FROM sports_team;
Em Vez de:
SELECT id, first_name, subject
FROM student_details_class10
UNION
SELECT id, first_name
FROM sports_team;
7) . Tenha Cuidado AO USAR condià § Ãμes na Clà ¡Usula ONDEPor Exemplo: Escrever uma consulta Como
SELECT id, first_name, age FROM student_details WHERE age > 10;
Em Vez de:
SELECT id, first_name, age FROM student_details WHERE age != 10;
Escrever uma consulta Como
SELECT id, first_name, age
FROM student_details
WHERE first_name LIKE 'Chan%';
Em Vez de:
SELECT id, first_name, age
FROM student_details
WHERE SUBSTR(first_name,1,3) = 'Cha';
Escrever uma consulta Como
SELECT id, first_name, age
FROM student_details
WHERE first_name LIKE NVL ( :name, '%');
Em Vez de:
SELECT id, first_name, age
FROM student_details
WHERE first_name = NVL ( :name, first_name);
Escrever uma consulta Como
SELECT product_id, product_name
FROM product
WHERE unit_price BETWEEN MAX(unit_price) and MIN(unit_price)
Em Vez de:
SELECT product_id, product_name
FROM product
...