indice

Entendendo o B-Tree Scanner

O B-Tree Scanner é um recurso interno do Informix que tem por objetivo manter as estruturas dos índices otimizadas para evitar degradação na performance de buscas.

Reniciar a thread do B-Tree Cleaner na versão 7.31

Basta setar a variável de ambiente export KVLOCKING_TEST=1 e executar o comando onmode -C 1 (parar) e onmode -C 0 (iniciar)

Tratando dados duplicados em indices com Violations table

Objetivo do violations é tratar "falhas" em indices e constraints.
Estas falhas são: dados duplicados em indices e falha na checagem da constraint.

Quando o violations é ativado, qualquer falha é logada em 2 tabelas podendo assim realizar um tratamento relacionado aos dados.
Para trabal

Tags:

Comportamento do CREATE INDEX ONLINE internamente

O teste aqui descrito foi realizado na versão 11.10.

Parâmetro utilizado ONLIDX_MAXMEM

  1. A tabela que terá o índice criado não pode ter nenhum lock exclusivo.
  2. Realiza um checkpoint.
  3. Identifica como está particionada (fragmentos) a tabela e cria threads/buffer chamados "pimage_<partnum>" e "ulog_<partnum>" onde:
    PIMAGE: Pré-Image, são as paginas Before Imag

Onde o parametro FILLFACTOR é gravado e como consulta-lo?

O parâmetro FILLFACTOR utilizado na criação de indices não é salvo em nenhum local do banco de dados.

Uma das razões para isso é devido o fato que logo após o indice ser criado, ele pode e provavelmente irá sofrer alterações e assim o espaço reservado pelo FILLFACTOR será utilizado.

Qual informação de estatística é criada durante a criação de um indice?

Obs.: Este recurso está disponível apenas a partir da versão 11.10.

  • Coleta estatísticas de indice equivalente a um UPDATE STATISTICS LOW, que se refere a dados como o segundo maior

Como validar as alterações de dados (constraints) apenas no final da transação?

Basta utililizar SET CONSTRAINTS [ALL|cons] DEFERRED
Exemplo:
[code]
create table tp01 ( cod integer, cod2 char(1) );
alter table tp01 add constraint unique (cod) constraint ucons;
insert into tp01 values (1,"a");
insert into tp01 values (2,"b");
insert into tp01 values (3,"c");
insert into tp01 values (4,"d");
set constraints all deferred;
begin work;
update tp01 set cod = 4 where cod2 = "b" ;
up

Tags:

Quais cuidados tomar para criação de indices utilizando parametro ONLINE?

  • O banco precisa de lock exclusivo apenas no momento de "commitar" a criação de indice, portanto definir o SET LOCK MODE TO WAIT
Tags: