Onde o banco gera as tabelas temporárias

Versão para impressãoEnviar para amigoVersão PDF

Tabelas temporárias no Informix são únicas na sessão em execução , são automaticamente excluídas quando a sessão finaliza , mesmo em caso de interrupção abrupta da conexão ou execução da instancia. Estas tabelas não tem como serem "compartilhadas" com outras sessões (mesmo se criadas com o mesmo nome).

Existem vários motivos que podem afetar o local de gravação de uma tabela temporária e seu modo de gravação (logada/não logada) e isso é: a configuração do banco, váriaveis de ambiente utilizado e comando executado pelo usuário.

Lembre que a gravação da tabela temporária e a definição se ela gera LOG ou não é muito importante para performance de I/O . E se utilizado configurações de alta-disponibilidade , então esta configuração pode ser considerado como critica.

Antes é necessário entender os dois tipos de tabelas temporárias existentes:

  • Temporária explicita - Explicit temp
    São as tabelas criadas pelo usuário de modo explicito, com comandos como CREATE TEMP TABLE , SELECT ... INTO TEMP, etc.
  • Temporária implicita - Implicit temp
    São as tabelas criadas internamente pelo banco de dados. São criadas em SELECTs com SORTs (que não utilizam indice), SELECTs com HASHJOINs, CREATE INDEX , INSERT INTO ... SELECT, etc.
Para identificar se um SQL está criando uma tabela temporária, utilize o comando SET EXPLAIN para depurar como o banco está trabalhando.

A descrição abaixo foi baseada na versão 11.50 UC3.

Variáveis, configurações e comandos que afetam o local de geração


  • onconfig TEMPTAB_NOLOG
  • onconfig DBSPACETEMP
  • env DBSPACETEMP
  • env PSORT_DBTEMP (utilizado apenas temporárias implicitas,sort e hash joins)
  • SELECT INTO TEMP [WITH NO LOG]
  • CREATE TEMP TABLE [WITH NO LOG]
  • DUMPDIR (utilizado apenas para temporárias implicitas)
  • onconfig SDS_TEMPDBS

Temporárias explicitas


Abaixo segue lista da ordem do local onde as temporárias criadas com CREATE TEMP TABLE e SELECT INTO TEMP
Observação: "sem log" = parâmetro "with no log"
  1. Foram criada nos dbspaces listados na variável de ambiente DBSPACETEMP as temporária sem log, com log, ir para próximo item.
  2. Foram criada nos dbspaces listados na configuração onconfig DBSPACETEMP apenas temporária sem log, com log vai para próximo item
  3. Criada no mesmo dbspace do banco de dados em utilização

Temporárias implícitas


Este documento está incompleto por tratar apenas algumas das situações de temporárias implícitas.

Tabelas que geram SORT

Copiado do Doc Notes 11.50 UC3

If more than one variable or parameter is specified, the priority by which
the Dynamic Server determines the location of the SORT OVERFLOW files is:
1. PSORT_DBTEMP environment variable
2. DBSPACETEMP environment variable
3. DBSPACETEMP ONCONFIG variable
4. DUMPDIR
5. $INFORMIXDIR/tmp

OBSERVAÇÕES
O arquivo gerado em file system possue o nome como "srt*"
Para servidores secundários, há algumas restrições , como:
- Para SDSs , o onconfig DBSPACETEMP não é considerado e sim o onconfig SDS_TEMPDBS

1
Média: 1 (1 vote)
Sua avaliação: Nenhum

Tabela temporária global

Martins, no Informix tem a possibilidade de criar tabelas temporarias globais? Obrigado.

temporária global

Ola Luciano,

Não, no informix todas as tabelas temporárias (create temp table, select ... into temp) fazem parte apenas da sessão em que foi criada e ao finalizar a sessão estas tabelas são automaticamente removidas.
O mais próximo que você pode conseguir fazer é criar uma tabela RAW que não irá gerar LOG desnecessáriamente (create raw table) , porém ela é uma tabela normal e precisará apaga-la manualmente.
É possível montar alguns esquemas automatizados, utilizando as funções sysdbopen/sysdbclose onde você pode programa-las para identificar e apagar a tabela ao fechar a sessão.

Comentar

O conteúdo deste campo é privado não será exibido ao público.
  • Endereços de páginas de internet e emails viram links automaticamente.
  • Você pode usar tags BBCode no texto.
  • Tags HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>

Mais informações sobre as opções de formatação

CAPTCHA
Este teste é para bloquear programas automatizados e previnir spams
CAPTCHA de Imagem
Digite o texto exibido na imagem.