[firebase-br] Dúvida sobre indices

Carlos H. Cantu listas em warmboot.com.br
Seg Maio 4 17:05:18 -03 2020


É assim mesmo... se vc tem um índice composto por duas chaves, a
pesquisa é sempre feita da "esquerda pra direita", portanto, pesquisar
só pelo segundo campo da chave nunca irá usar o índice composto.

No seu caso, compensa criar dois indices, um pra cada campo.

[]s
Carlos H. Cantu
eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br

UG> Pessoal, me tira uma dúvida por favor

UG> Tenho a seguinite tabela.

UG> CREATE TABLE TABELA (
UG>        CHAVE1 Numeric(10,0) NOT NULL,
UG>        CHAVE2 Numeric(10,0) NOT NULL,
UG>        CAMPO1 TIMESTAMP,
UG>        CAMPO2 Varchar(1),
UG>        CAMPO3 Numeric(10,0),
UG>        CAMPO4 Numeric(10,0),
UG>        CAMPO5 Numeric(10,0),
UG>        CONSTRAINT TABELA PRIMARY KEY (CHAVE1,CHAVE2)
UG> );

UG> Nela, criei a PK usando os campos CHAVE1 e CHAVE2.

UG> Se eu executo:

UG> select * from TABELA
UG> where TABELA.CHAVE1 = 30405

UG> Tenho o plano:

UG> PLAN (TABELA INDEX (PK_TABELA))

UG> Porém, se e eu executar o select pela outra chave primária:

UG> select * from TABELA
UG> where TABELA.CHAVE2 = 30405

UG> Tenho o plano:

UG> PLAN (TABELA NATURAL)

UG> Alguém sabe me dizer o porque? se estou usando as duas chaves primárias,
UG> uma em cada select...

UG> Desde já, agradeço a ajuda!




Mais detalhes sobre a lista de discussão lista