I have a query using two postgres tables.
One is called "CNX_DS_53_SIS_STU_OPT_FEE_TB" and the other is called
"CNX_DS2_53_SIS_STU_OPT_FEE_TB".
I am getting 3 times slower performance than Microsoft Access when
performing a left outer join.
Here are the tables in question:
connxdatasync=# \d "CNX_DS_53_SIS_STU_OPT_FEE_TB" Table "CNX_DS_53_SIS_STU_OPT_FEE_TB" Attribute | Type |
Modifier
----------------+---------------+----------RT_REC_KEY | character(14) |cnxarraycolumn | integer |CRC
| bigint | not null
connxdatasync=# \d "CNX_DS2_53_SIS_STU_OPT_FEE_TB" Table "CNX_DS2_53_SIS_STU_OPT_FEE_TB" Attribute | Type
|Modifier
----------------+---------------+----------RT_REC_KEY | character(14) |cnxarraycolumn | integer |CRC
| bigint | not null
Here is the query:
select a."RT_REC_KEY", a."cnxarraycolumn", a."CRC" from
"CNX_DS_53_SIS_STU_OPT_FEE_TB" a left outer join
"CNX_DS2_53_SIS_STU_OPT_FEE_TB" b on ( a."RT_REC_KEY" = b."RT_REC_KEY"
and a."cnxarraycolumn" = b."cnxarraycolumn") where b.oid is null ;
Creating the following index had no effect on performance!
create unique index i1 on "CNX_DS2_53_SIS_STU_OPT_FEE_TB" ("RT_REC_KEY",
"cnxarraycolumn", "CRC");
Both tables had 6139062 rows of data.
In this query ... all rows of data match perfectly, so no results are
returned.
Is there a way to reformulate this query so that it will use the index?