O esquema de distribuição que voce especificar com a instrução CREATE TEMPORARY TABLE, sera gravada baseando-se na configuração do parametro do ONCONFIG, esse parametro é o DBSPACETEMP.
Se você não especificar explicitamente um esquema de distribuição para uma tabela temporaria, o seu local de armazenamento sera o DBSPACETEMP.
- Se o DBSPACETEMP não forem definidos no ONCONFIG, todas as tabelas temporarias serão criadas sem fragmentos no dbspace de onde o banco de dados foi criado ( ou no dbroots, se o banco de dados não foi criado em outro dbspace).
- Se apenas um dbspace temporario é especificado no parametro DBSPACETEMP, então todas as tabelas temporarias serão criadas sem a fragmentação no dbspace especificado.
- Se o parametro DBSPACETEMP tiver mais de um dbspace especificado, então cada tabela temporaria é criada em um dos dbspaces especificado.
Em um Banco de Dados especificado como non-logging, cada tabela temporaria é criada em um dbspace temporario, em uma operação de banco de dados que suporte o registro, a tabela temporaria é criada em um dbspace padrão. O Servidor de Banco de Dados se mantem informado quais as dbspaces foram usados recentemente, e quando ele recebe a solicitação para armazenamento temporario, o servidor usa o dbspace proximo disponivel a fim de alocar I/O de operações uniformemente entre os dbspaces.
Por exemplo, se voce criar tres tabelas temporarias em um banco de dados com o parametro DBSPACETEMP setado com tres dbspaces (temp1, temp2 e temp3), o servidor ira gravar a primeira tabela no dbspace temp1, a segunda tabela no dbspace2 e a terceira tabela no dbspace3.
As tabelas temporarias criadas com SELECT....INTO TEMP ou SELECT.... INTO SCRATCH, também se comportam desta maneira.
Para maiores informações sobre o parametro DBSPACETEMP, consulte o IBM Informix Guide to SQL.
O exemplo a seguir mostra como inserir dados em uma tabela temporaria chamada result_temp, originada de um função definida pelo usuario (informix) que retorna varias linhas:
CREATE TEMP TABLE result_temp (.........);
INSERT INTO result_temp informix function execute ( );
UNLOAD TO 'arquivo' SELECT * FROM temp1;
Ola Amilcar,
ResponderExcluirPrimeiramente obrigado por me responder.
Na verdade eu gostaria de encontrar a tabela onde o IDS armazena o nome das tabelas temporárias, assim como ele faz na systables.
Mesmo assim, muito obrigado por compartilhar mais esse conhecimento conosco.
Grande abraço!
select
ResponderExcluir*
from
sysmaster:systabnames s
, sysmaster:systabinfo i
where
s.partnum = i.ti_partnum
and s.tabname = 'temp_teste'