Ocorrência: Queries realizadas pela aplicação AdvPL, que primordialmente usam campos do tipo UUID ( Unique Idenrtifier ) apresentam baixo desempenho em tabelas com muitas linhas, devido a ausência de um índice que contemple o(s) campo(s) UUID. Implementação: O DBAccess passa a criar automaticamente um índice interno no banco de dados, para cada coluna de tabela que seja criada com tratamento de UUID (Unique Identifier) no banco de dados, no momento da criação da tabela ou da adição da coluna. Caso a tabela e a coluna já existam como UUID, a primeira abertura da tabela pelo DBACCESS, verifica e cria o índice para a coluna sob demanda. Observações: A criação dos índices internos por UUID tende a consumir mais tempo quanto mais linhas houver na tabela. Referente a ocorrencia : TPGW-1343 Aviso |
---|
Como a criação dos índices para as colunas com tipo UUID está habilitada por default para ser feita na primeira abertura da tabela pelo DBAccess, enquanto o índice está sendo criado a rotina em questão fica parada na operação ROP_OPEN, mostrada no monitor de conexóes do DBAccess, até que o índice seja criado. E quanquer outro processo ou conexão também vai ficar aguardando enquanto a criação do índice náo for concluída. Para desligar esse comportamento de verificação e criação automática de índices, pode ser usada a configuração UUIDIndex=0 no arquivo dbaccess.ini, na seção do DSN/AMBIENTE, ou na seção GENERAL |
|