SELECT * FROM
TABLE_2 T2
INNER JOIN
TABLE_1 T1
ON
T2.TABLE_1_ID = T1.ID
After executing this query I am getting such plan:
PLAN JOIN (T1 NATURAL, T2 INDEX (FK_TABLE_2))
Why in case of TABLE_1 optimizer did not chose index PK_TABLE_1? And why I am
getting error when i try to enforce it
Hello,
here is full example:
CREATE TABLE TABLE_1
(
ID INTEGER NOT NULL,
NAME VARCHAR(32),
CONSTRAINT PK_TABLE_1 PRIMARY KEY (ID)
);
GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE
ON TABLE_1 TO SYSDBA WITH GRANT OPTION;
CREATE TABLE TABLE_2
(
ID INTEGER NOT NULL,
How about something along the lines of:
A table that small is going to fit into a single disk page. So a table
scan involves reading one disk page.
Using the index would involve reading the index as well, which is a
second disk page, so twice as slow.
?
(Other RDBMS which have a covering
On May 15, 2015, at 9:02 AM, brucedickin...@wp.pl [firebird-support]
firebird-support@yahoogroups.com wrote:
SELECT * FROM
TABLE_2 T2
INNER JOIN
TABLE_1 T1
ON
T2.TABLE_1_ID = T1.ID
After executing this query I am getting such plan:
PLAN JOIN (T1 NATURAL, T2 INDEX
Bruce,
SELECT * FROM
TABLE_2 T2
INNER JOIN TABLE_1 T1 ON T2.TABLE_1_ID = T1.ID
After executing this query I am getting such plan:
PLAN JOIN (T1 NATURAL, T2 INDEX (FK_TABLE_2))
Why in case of TABLE_1 optimizer did not chose index PK_TABLE_1?
Given that there is no ORDER BY clause