[firebase-br] Left Join muito Lento no Firebird 3 como resolvo ?
Luciano franca
luapfirebird em yahoo.com.br
Seg Ago 1 13:45:09 -03 2016
Pessoal o firebird não usa índice quando uso um Left Join ?
Estou usando o Firebird 3 final
a tabela é
CADASTRO_CIDADES ( COD_UF "AlfaNumerico_2" NOT NULL, COD_MUNICIPIO "AlfaNumerico_5" NOT NULL COLLATE WIN_PTBR, UF "AlfaNumerico_20" NOT NULL COLLATE WIN_PTBR, MUNICIPIO "AlfaNumerico_60" NOT NULL COLLATE WIN_PTBR, UF_SIGLA "AlfaNumerico_2" );
ALTER TABLE CADASTRO_CIDADES ADD CONSTRAINT PK_CADASTRO_CIDADES PRIMARY KEY (COD_UF, COD_MUNICIPIO);
Criei esse indice abaixo mais não resolveu nadaCREATE INDEX CADASTRO_CIDADES_IDX1 ON CADASTRO_CIDADES (COD_UF, COD_MUNICIPIO);
Select CE.* From Cadastro_Endereco CE Left Join Cadastro_Cidades CCI On (CCI.Cod_UF || CCI.Cod_Municipio = CE.Cod_Cidade)
Se eu Usar Inner join no lugar de Left Join o Plan é esse de baixoPLAN JOIN (CCI NATURAL, CE INDEX (CADASTRO_ENDERECO_IDX1))
Se eu usar Left Join o Plan é esse PLAN JOIN (CE NATURAL, CCI NATURAL)
Se eu tentar forçar o plan usando o mesmo Plan do Inner Join dá o seguinte erroindex CADASTRO_ENDERECO_IDX1 cannot be used in the specified plan.
Mais detalhes sobre a lista de discussão lista