Uma boa forma de verificar esta performance e qual índice o banco está utilizando, é colocar EXPLAIN antes da query a ser executada no seu manipulador de banco preferido.
Abaixe um pequeno exemplo de como criar/recriar índices:
PSQL_Index(xBanco,'tabela','idx_nome_indice',{'campo1','campo2'},Arg1)
**-----------------------------------------------------------------------------**
** Finalidade: criar indices nativos no banco de dados
** Parametros: Conexao = Qual banco vai conectar
** Tabela = tabela que vai criar os indices
** Indice = Nome do indice que vai ser criado
** Campos = Campos no indice
** DeletaIndices = .t. (apaga) ou .f. (nao apaga)
**-----------------------------------------------------------------------------**
FUNCTION PSQL_Index(Conexao,Tabela,Indice,Campos,DeletaIndices)
#include 'fivewin.ch'
**-----------------------------------------------------------------------------**
**--[ verifica se vai deletar os indices existentes ]--**
IF(DeletaIndices)
SQL EXECUTE ("ALTER TABLE `"+Lower(tabela)+"` DROP INDEX `"+Lower(indice)+"`") INTO (conexao)
ENDIF
**--[ cria indices se nao existente ]--**
IF(At(indice,ToString(SQLArray("SHOW INDEX FROM "+tabela,,Conexao)))==0)
cCampo:=''
FOR X = 1 TO Len(Campos)
IF(Len(Campos)== X)
cCampo+=Lower(Campos[X])
ELSE
cCampo+=Lower(Campos[X])+","
ENDIF
NEXT
cCmd:="CREATE INDEX "+Lower(AllTrim(Indice))+" ON "+Lower(AllTrim(tabela))+" ("+AllTrim(cCampo)+")"
PSQL_Execute(conexao,cCmd,Tabela)
ENDIF
RETURN(NIL)
Nenhum comentário:
Postar um comentário