2012-01-15 4 views
-1

은 오라클 쿼리에서 가장 빠릅니까?

select * from customers where id = 1; 
select * from customers where id = 2; 

또는 빠른

select * from customers where id in(1,2); 

?

+1

WHERE (id = 1 OR id = 2)하려면 그것을 시도 보통 (항상?) 다시 것입니다 최적화. 설명 계획을보세요. – Mat

+0

인덱스에 따라 달라집니다 – Avitus

+2

첫 번째 컬렉션은 각각 하나의 행을 포함하는 두 개의 컬렉션을 반환합니다. 두 번째 행은 2 개의 행을 포함하는 하나의 콜렉션을 리턴합니다. 그것들은 같은 결과를주지 않으므로 그것들을 계산하는 것은 의미가 없습니다. 의미있는 질문을 위해 더 많은 상황이 필요합니다. –

답변

5

첫 번째 것은 실제로 데이터베이스로 왕복하는 두 개의 명령문입니다. 두 번째 문장은 단 하나의 문장이므로 빠를 것입니다.

0

정말로 이것을 확인하려고합니까? 한 번에 두 줄 또는 두 번 돌아가서 한 줄을 반환하는 것이 더 빠르냐고 묻고 있습니까? 그것이 질문이라면, 나는 의견에 동의한다 - 그것을 시도하고, 측정하고 비교한다.

이런 종류의 것을 효율적으로 만들려고한다면, 대신 bind 변수를 사용해야합니다. 귀하의 질문이 실제로 그것이 무엇을 의미하는지 의미한다면, 아마 여기있는 모든 대답이 가능할 것입니다.

0

"빠른"이라는 질문은 항상 데이터베이스의 특성에 따라 달라질 수 있습니다. 나는 plhmhck와 MJB를 덧붙일만한 것이 아무것도 없다. 왜냐하면 당신이 2 개의 질의와 1 개의 질의에 대해 이야기하고 있다는 사실에 관한 것이다.

그러나주의 할 것을 WHERE id IN (1,2)

관련 문제