Re: Query Plan far worse in 7.3.2 than 7.2.1
От | Tom Lane |
---|---|
Тема | Re: Query Plan far worse in 7.3.2 than 7.2.1 |
Дата | |
Msg-id | 22179.1051714467@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Query Plan far worse in 7.3.2 than 7.2.1 ("Peter Darley" <pdarley@kinesis-cem.com>) |
Ответы |
Re: Query Plan far worse in 7.3.2 than 7.2.1
|
Список | pgsql-performance |
"Peter Darley" <pdarley@kinesis-cem.com> writes: > SELECT COUNT(*) FROM Border_Shop_List WHERE NOT EXISTS (SELECT Foreign_Key= > FROM Sample WHERE Foreign_Key=3D'Quantum_' || Border_Shop_List.Assignment_= > ID || '_' || Assignment_Year || '_' || Evaluation_ID) What's the datatype of Foreign_Key? I'm betting that it's varchar(n) or char(n). The result of the || expression is text, and so the comparison can't use a varchar index unless you explicitly cast it to varchar: WHERE Foreign_Key = ('Quantum_' || ... || Evaluation_ID)::varchar I think 7.2 had some kluge in it that would allow a varchar index to be used anyway, but we took out the kluge because it was semantically wrong (it would also allow use of a char(n) index in place of a text comparison, which alters the semantics...) regards, tom lane
В списке pgsql-performance по дате отправления: