Search Postgresql Archives

Learning to rephrase equivalent queries?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sometimes the planner can't find the most efficient way to execute your query. Thanks to relational algebra, there may be other, logically equivalent queries that it DOES know how to optimize.

But I don't know relational algebra. yet. (Date/Codd is a sleeping pill.) I need more experience first.

Are there blogs, guides, rules of thumb, common refactoring patterns out there somewhere? I'm looking for a list of basic equalities, the SQL equivalent of:

a^2 - b^2 = (a + b)(a - b)

Such as:

SELECT  l.*
FROM    t_left l
LEFT JOIN
t_right r
ON      r.value = l.value
WHERE   r.value IS NULL

=

SELECT  l.*
FROM    t_left l
WHERE   NOT EXISTS
(
SELECT  NULL
FROM    t_right r
WHERE   r.value = l.value
)

All my searches for "SQL Refactoring" seem to lead to either (a) discussions about how many characters an alias should be and how you should indent things, or (b) tutorials on normalization. This isn't that. I want to learn ways to restate my queries.

Any tips?


--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux