--
You received this message because you are subscribed to the Google Groups "H2 Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email to h2-database...@googlegroups.com.
To post to this group, send email to h2-da...@googlegroups.com.
Visit this group at https://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.
Another option, if we want to be more complete when it comes to how things are executed…
Is to use Sybase/SAP syntax
select * from titles where title_id = 'On Liberty'
plan '(i_scan title_id_ix titles)'
The nice thing with the above syntax is that it’s
· “detached” from the SQL statement itself (not embedded in the *actual* sql text, but appended after the statement)
Or decouples the SQL text from the execution plan
· Easier to extend the syntax of the “plan” specification (we can have an alternate parser for parsing the execution plan)
Meaning not *just* index hints, but also join order, if we want to use nested loop join or merge join or... etc, etc…
· Maybe over the top: later on at “execution time” an “abstract plan” can be associated with a specific SQL Statement/text
(this so the application doesn’t have to be changed just because you want to “change” the execution plan)
The “Abstract Query Plan” is described in: http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc00743.1570/html/queryprocessing/X14674.htm
In there we might be able to get some ideas that can be reused in H2
/Göran Schwarz
--
I'm ok with that. I think MySQL' s index syntax looks ok to me, although I'd prefer an index name instead of a key list.
On Wed, 04 Jan 2017 at 14:13, Steve McLeod <steve....@gmail.com> wrote:
I'm considering attempting to add index hints to H2.--Questions:* Is this a good idea? Or is it better to work on making the query optimizer smarter at choosing the correct index?* Is Oracle's syntax preferable? Or MySQL's syntax? Or is there a better syntax altogether?Oracle:SELECT /*+ INDEX (employees emp_department_ix)*/employee_id, department_idFROM employeesWHERE department_id > 50;MySQL:SELECT * FROM table1 USE INDEX (col1_index,col2_index)WHERE col1=1 AND col2=2 AND col3=3;
You received this message because you are subscribed to the Google Groups "H2 Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email to h2-database+unsubscribe@googlegroups.com.
To post to this group, send email to h2-da...@googlegroups.com.
Visit this group at https://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "H2 Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email to h2-database+unsubscribe@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to h2-database...@googlegroups.com.