Seemingly identical queries run at different speeds

Поиск
Список
Период
Сортировка
От VanL
Тема Seemingly identical queries run at different speeds
Дата
Msg-id bfkh0r$iri$1@main.gmane.org
обсуждение исходный текст
Ответы Re: Seemingly identical queries run at different speeds  (Arguile <arguile@lucentstudios.com>)
Re: Seemingly identical queries run at different speeds  (Alvaro Herrera <alvherre@dcc.uchile.cl>)
Список pgsql-general
Hello,

I have three queries that are essentially identical.  Two of them run in
fractions of a second; one of them takes longer than 15 minutes to
return. (Not sure how long it totally takes, that has been the limit of
my patience.)

The only difference between these queries is the use of table aliases in
the sql query.  What is happening in postgres that this makes such a
difference?

SQL queries below.

Thanks,

VanL

FAST (0.017 second):
select
     mm_batch.name as batch_name,
     mm_domain.name as domain_name,
     mm_management_unit.name as management_unit_name,
     mm_customer.firstname as customer_name,
     mm_legacy_account.username as old_username,
     mm_target_account.username as new_username
from
     mm_batch,
     mm_domain,
     mm_management_unit,
     mm_customer,
     mm_legacy_account,
     mm_target_account
where
         mm_domain.bid = mm_batch.id
     and mm_domain.mid = mm_management_unit.id
     and mm_domain.cid = mm_customer.id
     and mm_domain.lid = mm_legacy_account.id
     and mm_domain.tid = mm_target_account.id
     and mm_domain.name = 'example.com';
========================================================
FAST (0.016 second):
select
     B.name as batch_name,
     D.name as domain_name,
     M.name as management_unit_name,
     C.firstname as customer_name,
     LA.username as old_username,
     TA.username as new_username
from
     mm_batch B,
     mm_domain D,
     mm_management_unit M,
     mm_customer C,
     mm_legacy_account LA,
     mm_target_account TA
where
         D.bid = B.id
     and D.mid = M.id
     and D.cid = C.id
     and D.lid = LA.id
     and D.tid = TA.id
     and D.name = 'example.com';
=========================================================
SLOW ( > 15 minutes):
select
     mm_batch.name as batch_name,
     mm_domain.name as domain_name,
     mm_management_unit.name as management_unit_name,
     mm_customer.firstname as customer_name,
     mm_legacy_account.username as old_username,
     mm_target_account.username as new_username
from
     mm_batch B,
     mm_domain D,
     mm_management_unit M,
     mm_customer C,
     mm_legacy_account LA,
     mm_target_account TA
where
         mm_domain.bid = mm_batch.id
     and mm_domain.mid = mm_management_unit.id
     and mm_domain.cid = mm_customer.id
     and mm_domain.lid = mm_legacy_account.id
     and mm_domain.tid = mm_target_account.id
     and mm_domain.name = 'example.com';


В списке pgsql-general по дате отправления:

Предыдущее
От: "scott.marlowe"
Дата:
Сообщение: pronouncing postgresql
Следующее
От: Arguile
Дата:
Сообщение: Re: Seemingly identical queries run at different speeds