O buffer especificado pelo FET_BUF_SIZE é compartilhado entre os cursores?

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

O objetivo aqui é identificar como o FET_BUF_SIZE trabalha quando houver mais de um cursor de insert ou update. Se todos os cursores compartilham o mesmo buffer ou não (insert buffer) .

Este teste é importante para o desenvolvedor em situações que esta variável ( FET_BUF_SIZE ) é parametrizado com intuição de melhorar performance da aplicação que realiza muita inclusão de dados. A importância está não só na performance , mas no tratamento de erros , onde o desenvolvedor poderá ou não ter controle sobre qual tabela ocorreu um erro.

Para mais informações sobre esta variável e os cuidados ao utiliza-la, leia este post

Testes realizado com Informix 4GL, sempre na mesma transação:

  • TESTE 1
    # Rascunho do código utilizado
    begin work;
    declare de SELECT FOR UPDATE
    FOREACH <cursor> 
      update WHERE CURRENT OF <cursor>
      cursor de INSERT na mesma tabela 
    END FOREACH;
    commit work;
    

    Para cada FOREACH e UPDATE os dados foram enviados linha a linha, já os INSERTS só foram enviado quando o buffer encheu.

  • TESTE 2
    # Rascunho do código utilizado
    begin work;
    declare de SELECT FOR UPDATE
    FOREACH <cursor> 
      update WHERE CURRENT OF <cursor>
      cursor A de INSERT na tabela Tab_A
      cursor B de INSERT na tabela Tab_B
    END FOREACH
    commit work;
    

    Para cada FOREACH e UPDATE os dados foram enviados linha a linha, já os INSERTS foram enviado separadamente e independentemente de cada cursor, quando o buffer encheu.
    Lembrando que o tamanho do buffer é definido pela variável FET_BUF_SIZE , o tamanho dele é igual para as duas tabelas (Tab_A e Tab_B), porém como as tabelas podem ter o tamanho de registro diferentes (uma com 5 colunas e 50 bytes outra com 15 colunas e 250 bytes) o insert buffer de cada cursor irá ser preenchido em diferentes momentos.
Portanto, SIM o buffer especificado no FET_BUF_SIZE é individual para cada cursor

0
Ainda não votado
Sua avaliação: Nenhum

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.