Thread: Planner hints in SELECT queries?
Hello.
Sometimes I have to create the following SQL code:
SET something=off;
SET other=off;
SELECT * FROM ... ORDER BY id LIMIT 10;
RESET something;
RESET something;
(e.g. "something" may be equal to "seq_page_cost=100000").
I propose to add the SELECT clause to do it natively, like this:
SELECT *
FROM tbl
ORDER BY id
LIMIT 10
SETTING something=off, other=off
This will do RESET back automatically when the query is executed.
(Why do I need it? Because sometimes even after ANALYZE query I get non-optimal plan, even if I exactly know which plan should be used.)
Sometimes I have to create the following SQL code:
SET something=off;
SET other=off;
SELECT * FROM ... ORDER BY id LIMIT 10;
RESET something;
RESET something;
(e.g. "something" may be equal to "seq_page_cost=100000").
I propose to add the SELECT clause to do it natively, like this:
SELECT *
FROM tbl
ORDER BY id
LIMIT 10
SETTING something=off, other=off
This will do RESET back automatically when the query is executed.
(Why do I need it? Because sometimes even after ANALYZE query I get non-optimal plan, even if I exactly know which plan should be used.)
"Dmitry Koterov" <dmitry@koterov.ru> writes: > I propose to add the SELECT clause to do it natively, like this: > SELECT * > FROM tbl > ORDER BY id > LIMIT 10 > SETTING something=off, other=off Use a function with a SET clause attached. regards, tom lane