Pular para o conteúdo
  • Este tópico contém 5 respostas, 3 vozes e foi atualizado pela última vez 13 anos, 1 mês atrás por Vivaldo Neto.
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #104734
    Vivaldo Neto
    Participante

      Boa Tarde,

      Estive lendo um artigo do @fbifabio sobre Performance de consultas em Tablespaces, e gostaria de saber como posso criar uma tablespace de indice com blocos de 32K, sendo que quando eu crio o banco ele cria com db_block_size=8192, e quando vou criar a tablespace e adiciono “BLOCKSIZE 32” ocorre um erro “não é um tamanho de bloco válido”

      Alguem ja criou este tipo de tablespace??

      #104736
      paulogerva
      Participante

        Olá, provavelmente o parâmetro db_32k_cache_size não tem valor definido.
        Tente o seguinte:

        SQL> alter system set db_32k_cache_size=50M scope=both;
        SQL>create tablespace xxx_32k blocksize 32K;

        Abs.
        Paulo Gervasio.

        #104738
        Fábio Prado
        Participante

          vivaldo,

          O Paulo Gervasio deu a instrução correta. Vc tem que habilitar uma qtde especifica de memória para blocos de 32k através do parametro db_32k_cache_size. Deve-se tomar cuidado para habilitar um tamanho que seja suficiente para armazenar os dados que realmente poderão estar armazenados em memória. Se vc tem um índice que tem 50Mb de dados em 1 tablespace com blocos de 32k, vc pode executar sem preocupações o comando abaixo:

             alter system set db_32k_cache_size=50M scope=spfile;
          

          Observações:
          1- O parametro db_32k_cache_size não é dinâmico, portanto, vc terá que reiniciar o BD p/ ele ter efeito após a alteração!
          2- Só é possível habilitar blocos de 32k em SOs de 64 bits. Se o SO for de 32 bits, vc conseguirá configurar no máximo, blocos de 16k.

          []s

          Fábio Prado
          http://www.fabioprado.net

          #104740
          Vivaldo Neto
          Participante

            Galera,

            seguinte, executei o comando como foi passado mas ocorre o seguinte erro:

            Error starting at line 1 in command:
            alter system set db_32k_cache_size=50M scope=spfile
            Error report:
            SQL Error: ORA-32017: failure in updating SPFILE
            ORA-00380: cannot specify db_32k_cache_size since 32K is the standard block size
            32017. 00000 – “failure in updating SPFILE”
            *Cause: A failure occured while updating the SPFILE.
            *Action: See associated errors.

            Obs: Linux srv-redhat.localdomain 2.6.32-71.el6.x86_64 #1 SMP Wed Sep 1 01:33:01 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

            Obs: Quando criei o banco em db_blocksize eu coloquei 32

            #104741
            Fábio Prado
            Participante

              vivaldo,

              Vc já criou o BD com blocos de 32k, portanto seus tablespaces já usam esse tamanho de bloco. O que vc pode fazer agora é só habilitar parametros para outros tamanhos de blocos, como por exemplo db_8k_cache_size = 500M.

              Pq vc criou o BD com blocos default de 32k? Não aconselho isso para tablespaces de dados, aconselho somente para tablespaces de indices. Em tablespaces de dados, se existirem muitos usuários concorrentes alterando dados vc pode ter problemas de hot blocks e contenção de blocos, o que poderá degradar a performance de suas atualizações. Se o BD for um Datawarehouse, ai não tem problema!

              []s

              Fábio Prado
              http://www.fabioprado.net

              #104752
              Vivaldo Neto
              Participante

                Boa Noite, desculpe a demora

                @fbifabio

                Eu criei o banco com blocksize=32k so para saber mesmo, mas como voce falou voltei o banco para 8k e fiz o processo @paulogerva mencionou e funcionou perfeito, agora vamos aos teste e checar se existe diferença.

                Valeu pela força moçada

              Visualizando 6 posts - 1 até 6 (de 6 do total)
              • Você deve fazer login para responder a este tópico.