Created
May 12, 2016 22:48
-
-
Save Tagar/7db30645380ff252108fb30266930169 to your computer and use it in GitHub Desktop.
Oracle JOIN elimination using FK
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SQL> ALTER TABLE CLIENTS_TEST ADD CONSTRAINT CLIENTS_TEST_PK PRIMARY KEY (CLIENT_ID) | |
TABLE altered. | |
SQL> CREATE TABLE CLIENTS_DIM ( | |
CLIENT_ID NUMBER | |
, ATTR1 NUMBER | |
, ATTR2 NUMBER | |
) | |
TABLE created. | |
SQL> INSERT INTO CLIENTS_DIM | |
SELECT ROWNUM, 10,20 | |
FROM DUAL | |
CONNECT BY ROWNUM<100 | |
99 ROWS created. | |
SQL> ALTER TABLE CLIENTS_DIM ADD CONSTRAINT CLIENTS_DIM_PK PRIMARY KEY (CLIENT_ID) | |
TABLE altered. | |
SQL> ALTER TABLE CLIENTS_DIM | |
ADD CONSTRAINT CLIENTS_DIM_FK | |
FOREIGN KEY (CLIENT_ID) REFERENCES CLIENTS_TEST (CLIENT_ID) | |
TABLE altered. | |
SQL> EXPLAIN PLAN FOR | |
SELECT ATTR1,CLIENT_ID FROM CLIENTS_DIM JOIN CLIENTS_TEST USING (CLIENT_ID) | |
EXPLAIN complete. | |
SQL> SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY()) | |
/* | |
--------------------------------------------------------------------------------- | |
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | | |
--------------------------------------------------------------------------------- | |
| 0 | SELECT STATEMENT | | 99 | 2574 | 2 (0)| 00:00:01 | | |
| 1 | TABLE ACCESS FULL| CLIENTS_DIM | 99 | 2574 | 2 (0)| 00:00:01 | | |
--------------------------------------------------------------------------------- | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment