- Este tópico contém 5 respostas, 5 vozes e foi atualizado pela última vez 16 anos, 1 mês atrás por
airoosp.
-
AutorPosts
-
12 de fevereiro de 2010 às 6:22 pm #92629
airoosp
ParticipanteBoa tarde,
Será que alguém pode ajudar, o cenário é o seguinte:
1 – Servidor antigo com 512MB de RAM, executando banco Oracle 8.0.5 e o sistema operacional Windows NT.
Feito dump gerando arquivo com 9GB.2 – Servidor novo com 2GB de RAM, executando banco Oracle 8.0.5 e o sistema operacional Windows 2003 Server.
Feito o import do arquivo dump para este servidor.
Após a importação, ao executar um count (servidor novo) para verificar a quantidade de registros de duas tabelas uma com 6 e outra com 8 milhões de registros, cada execução demorou 8 minutos e no servidor antigo não acontecia essa demora.
Comparei os 2 arquivos INITORCL.ORA vi que alguns parâmetros estavam com valor baixo no servidor novo, fiz algumas alterações para ver se a performance melhora.
Abaixo esta o conteúdo do arquivo, será necessário alterar mais algum parâmetro?# replace “oracle” with your database name
db_name=ORCLdb_files = 1024 # INITIAL
# db_files = 80 # SMALL
# db_files = 400 # MEDIUM
# db_files = 1000 # LARGEcontrol_files = d:orantDATABASEctl1ORCL.ora
db_file_multiblock_read_count = 32 # INITIAL
# db_file_multiblock_read_count = 8 # SMALL
# db_file_multiblock_read_count = 16 # MEDIUM
# db_file_multiblock_read_count = 32 # LARGEdb_block_buffers = 30000 # INITIAL
# db_block_buffers = 100 # SMALL
# db_block_buffers = 550 # MEDIUM
# db_block_buffers = 3200 # LARGEshared_pool_size = 102400000 # INITIAL
# shared_pool_size = 3500000 # SMALL
# shared_pool_size = 5000000 # MEDIUM
# shared_pool_size = 9000000 # LARGElog_checkpoint_interval = 10000
processes = 100 # INITIAL
# processes = 50 # SMALL
# processes = 100 # MEDIUM
# processes = 200 # LARGEparallel_max_servers = 5 # SMALL
# parallel_max_servers = 4 x (number of CPUs) # MEDIUM
# parallel_max_servers = 4 x (number of CPUs) # LARGElog_buffer = 32768 # INITIAL
# log_buffer = 8192 # SMALL
# log_buffer = 32768 # MEDIUM
# log_buffer = 163840 # LARGEsequence_cache_entries = 100 # INITIAL
# sequence_cache_entries = 10 # SMALL
# sequence_cache_entries = 30 # MEDIUM
# sequence_cache_entries = 100 # LARGEsequence_cache_hash_buckets = 89 # INITIAL
# sequence_cache_hash_buckets = 10 # SMALL
# sequence_cache_hash_buckets = 23 # MEDIUM
# sequence_cache_hash_buckets = 89 # LARGE# audit_trail = true # if you want auditing
# timed_statistics = true # if you want timed statistics
max_dump_file_size = 10240 # limit trace file size to 5 Meg each# Uncommenting the line below will cause automatic archiving if archiving has
# been enabled using ALTER DATABASE ARCHIVELOG.
# log_archive_start = true
# log_archive_dest = %ORACLE_HOME%databasearchive
# log_archive_format = “%ORACLE_SID%%S.%T”# If using private rollback segments, place lines of the following
# form in each of your instance-specific init.ora files:
# rollback_segments = (name1, name2)rollback_segments=(RB1,RB2,RB3,RB4,RB5,RB6,RB7,RB8,RB9,RB10,RB11,RB12,RB13,RB14,RB15,RB16)
# If using public rollback segments, define how many
# rollback segments each instance will pick up, using the formula
# # of rollback segments = transactions / transactions_per_rollback_segment
# In this example each instance will grab 40/10 = 4:
# transactions = 40
# transactions_per_rollback_segment = 10# Global Naming — enforce that a dblink has same name as the db it connects to
global_names = FALSE# Edit and uncomment the following line to provide the suffix that will be
# appended to the db_name parameter (separated with a dot) and stored as the
# global database name when a database is created. If your site uses
# Internet Domain names for e-mail, then the part of your e-mail address after
# the ‘@’ is a good candidate for this parameter value.# db_domain = us.acme.com # global database name is db_name.db_domain
# Uncomment the following line if you wish to enable the Oracle Trace product
# to trace server activity. This enables scheduling of server collections
# from the Oracle Enterprise Manager Console.
# Also, if the oracle_trace_collection_name parameter is non-null,
# every session will write to the named collection, as well as enabling you
# to schedule future collections from the console.# oracle_trace_enable = TRUE
# define directories to store trace and alert files
background_dump_dest=%RDBMS80%trace
user_dump_dest=%RDBMS80%tracedb_block_size = 2048
remote_login_passwordfile = shared
text_enable = TRUE
sort_area_size=8192000
sort_area_retained_size=81920# The following parameters are needed for the Advanced Replication Option
job_queue_processes = 2
job_queue_interval = 10
job_queue_keep_connections = falsedistributed_lock_timeout = 300
distributed_transactions = 25open_links = 128
open_cursors = 512Obrigado.
Airton
12 de fevereiro de 2010 às 10:32 pm #92631Anônimo
O melhor é instalar em Red Hat.
13 de fevereiro de 2010 às 4:17 am #92632Ishii
ParticipanteOlá,
Tirei a poeira do meu Livro Oracle Tuning 8.0 (que comprei na Amazon para entregar via navio!! uau #coisavelha) e dando uma olhada nele e nas configurações sugiro:
1) Aumentar o shared_pool_size para pelo menos 1Gb (pois está com 100Mb);
2) Desabilitar os serviços desnecessários do Windows Server 2003;
3) Passe as configurações do Servidor (discos – qtd e tamanho, proc, etc);
4) Tablespaces (rollback e temp) com um tamanho razoável e ainda crie um segmento de rollback (deixando offline) com o maior tamanho possível pois será útil nos casos de DMLDe resto, sugiro usar uma versão acima (8.1.7) pois acho que funciona melhor com Win2003 Server…
[]s Ishii
13 de fevereiro de 2010 às 4:40 am #92633Leonardo Faria Ferreira
ParticipanteOlá,
tente além de aumentar shared_pool também aumentar db_block_buffers.
att.
16 de fevereiro de 2010 às 8:39 pm #92642Rodrigofs
ParticipanteOlá Airton, o banco apresenta essa lentidão somente quando você consulta essas tabelas ?
No seu COUNT você especifica um índice ?
Sugiro verificar o status dos índices das tabelas, por exemplo:SELECT owner, table_name, index_name, status
FROM dba_indexes
where table_name=’BIGTABLE’Abraço.
17 de fevereiro de 2010 às 9:39 pm #92646airoosp
ParticipanteBoa tarde,
Verifiquei e os índices das tabelas estam válidos, após alterar a shared_pool_size para 1GB e executar o count(*) em uma tabela o tempo de resposta foi de 2 minutos 48 segundos retornando um total 8420200 registros.
Em uma outra tabela executando o count em um campo que tem índice o tempo de resposta foi de 3 minutos e 56 segundos retornando 6597743 registros.
O valor do parâmetro DB_BLOCK_BUFFERS é 30000.O servidor tem 2GB de RAM e espaço disponível na unidade D 4GB.
Obrigado.
Airton
-
AutorPosts
- Você deve fazer login para responder a este tópico.