- 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.
-
AutorPosts
-
31 de outubro de 2012 às 11:07 pm #104734
Vivaldo Neto
ParticipanteBoa 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??
1 de novembro de 2012 às 2:41 am #104736paulogerva
ParticipanteOlá, 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.1 de novembro de 2012 às 9:47 pm #104738Fábio Prado
Participantevivaldo,
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.net1 de novembro de 2012 às 11:17 pm #104740Vivaldo Neto
ParticipanteGalera,
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
2 de novembro de 2012 às 2:06 am #104741Fábio Prado
Participantevivaldo,
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.net6 de novembro de 2012 às 4:46 am #104752Vivaldo Neto
ParticipanteBoa 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
-
AutorPosts
- Você deve fazer login para responder a este tópico.