Pergunta : Mudanças do desempenho em um programa DB2

Olá! todos,

We têm usado um programa do arquivo onde nós identificássemos uma lista de tabelas que arquivística necessário. A aproximação mais velha era: o

1) tido um programa de COBOL que suprimisse das tabelas de uma tabela em um time.
2) as tabelas com poucos registros foi suprimido using uma única supressão. Por exemplo SUPRESSÃO DE TABLE_FIRST ONDE DATA < DATE
3) para tabelas com número de registros significativo nós teve um cursor que buscasse registros. Para cada registro que buscado nós funcionávamos uma supressão query.
4) quando o ESFORÇO para o cursor foi funcionado, nós buscou 5000 fileiras em um ESFORÇO CSR_CURSOR do tempo por exemplo PARA 5000 FILEIRAS. Os dados foram armazenados em uma disposição com 5000 fileiras. Os registros foram lidos da disposição uma de cada vez e a supressão foi executada using estes valores. Depois que as primeiras 5000 fileiras são suprimidas, nós buscamos o bloco seguinte de 5000 por este ano onde de table.

This nós temos uma exigência em que nós fomos pedidos para remover a codificação dura específica da tabela do programa. Nós devemos criar uma lima de lista que contenha uma lista de tabela a ser suprimida e os critérios a ser usados para o apagamento. Isto exigiu uma revisão a nosso programa. Esta é a aproximação que nós temos para agora: o

1) nós executamos a supressão nas tabelas paralelamente. Um programa do CL é funcionado para ler da lima de lista e para cada tabela alistou um programa da supressão é submitted.
2) que o programa da supressão é um programa dinâmico de DB2 COBOL em que nós encontramos primeiramente que a chave preliminar para um table.
3) uma pergunta SELETA ESTÁ PREPARADA para fora using os campos no key.
4) nós usamos SQLDA para carregar o endereço do armazenamento para o jogo diferente das chaves preliminares que podem occur.
5) para cada registro que é buscado (using valores chaves preliminares do th), nós funcionam uma indicação da SUPRESSÃO. A indicação do ESFORÇO está a um ESFORÇO CSR_CURSOR USING O DESCRITOR: SQLDA.

What que eu não posso conseguir using a indicação do ESFORÇO no point# 5 é BUSCAR para 5000 FILEIRAS. É minha compreensão que eu começ o melhor desempenho se eu BUSCO nos blocos de 5000 (este é apenas um número que aleatório nós escolhemos) e na SUPRESSÃO do funcionamento para cada um dos 5000 registros buscados do que funcionando um ESFORÇO e um corredor simples uma SUPRESSÃO para cada registro que está retornado pelo ESFORÇO. o
Please recomenda se eu estou correto em supr que o “ESFORÇO no bloco de 5000 e na SUPRESSÃO” será mais rápido que “BUSCAR A TUDO e a SUPRESSÃO”. Se sim, como o que é a sintaxe a buscar nos blocos ao usar o SQLDA descriptor.

Thanks para o

Regards
Ali.
da ajuda adiantado. class= do

Resposta : Mudanças do desempenho em um programa DB2

Eu penso que este pôde ser um littlle mais fácil do que você realizou -- você pode fazer uma união entre as duas tabelas do temp e chamá-la feita:
-- Estão aqui os índices de sua tabela final…
Selecionar o país de Col1 Col2 Col3 Col4 Col5 Col6 Col7 DSTRecID
de DBO.PROC1_TBL
união
selecionar o país de Col1 Col2 Col3 Col4 Col5 Col6 Col7 DSTRecID
de DBO.PROC2_TBL

-- Você pode introduzi-lo em sua tabela final como:
Inserção em dbo.final_table (país de Col1 Col2 Col3 Col4 Col5 Col6 Col7 DSTRecID)
Selecionar o país de Col1 Col2 Col3 Col4 Col5 Col6 Col7 DSTRecID
de DBO.PROC1_TBL
união
selecionar o país de Col1 Col2 Col3 Col4 Col5 Col6 Col7 DSTRecID
de DBO.PROC2_TBL


Outras soluções  
 
programming4us programming4us