쿼리에 IN 절이있는 SQL 쿼리를 조정하려고합니다.SQL 쿼리 튜닝 (쿼리 최적화)
IN을 Join으로 바꾸고 쿼리 계획을 살펴 보았습니다. 실행 시간은 비슷하지만 결과는 different.Can 누군가가 관련하여 도움이 될 수 있습니까? pgadmin III에서 상점 데이터베이스를 사용하고 있습니다. 미리 감사드립니다. 원래 쿼리 :
SELECT person.id
FROM SHOP.person
WHERE person.id IN (SELECT personid
FROM SHOP.contactperson
WHERE companyid = 5);
편집을 할
SELECT person.id
FROM SHOP.person
JOIN SHOP.contactperson
ON person.id = contactperson.id
WHERE contactperson.companyid = 5;
에 지금이 쿼리 반환 올바른 결과 :
SELECT person.id
FROM SHOP.person
JOIN SHOP.contactperson
ON person.id = contactperson.personid
WHERE contactperson.companyid = 5;
나는 내가 그것을 변경할 때 대신 contactperson.id
의 contactperson.id
을 사용하고 있었다 올바른 쿼리를 내게 올바른 결과를 준.
성능 튜닝은 ** 높은 벤더 고유의 **입니다. SQL은 쿼리 언어 일뿐입니다. 대다수의 관계형 데이터베이스 시스템에서 사용합니다 ..... –
@marc_s는 상점 데이터베이스이며, pgadmin III에서 사용하고 있습니다. –
인덱스와 쿼리 계획을 포함하여 테이블 구조를 보여주십시오. –