Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> How to tune for "too many" users ?

How to tune for "too many" users ?

From: Jan Gelbrich <j_gelbrich_at_westfalen-blatt.de>
Date: Wed, 30 Apr 2003 10:03:04 +0200
Message-ID: <b8o02n$bo3ur$1@ID-152732.news.dfncis.de>


Hello, NG

what would be the right strategy to tune the instance, so that "too many" users do not slow down
the whole thing.

My situation:
1 AIX 4.3.3 on Escala Server, Oracle 8.1.7 EE with inhouse database, dedicated server, 8 GB of data (so it is fairly small) max. 200 users logged on over Net8 in a C/S env using Oracle Forms 4.5/Reports 5 as inhouse app (I know, desupported, but I have no choice).
The app references a lot of PL/SQL packages, but no Java or other new-fashioned things.
We migrated from 8.0.5 last year, we never had the following symptom that time, which is coming up
more and more over the last 4-6 weeks.

Symptom:
When more than 10-20 users are active (monitored by v$session etc. and parallely by HORA tool),
I see performance decreasing significantly even on very small queries. At these times, I obsere only very few locks and almost no blockings (which is not the issue here, I have a solution for this). Sometimes, starting a Form
may take 10 or more seconds ... before this symptom, i the past I only had (rare) problems with blocking sessions;
this has been solved. So, when there are no blockings anymore, what could be the major cause for those jams ?

There must be a solution for this, since Oracle was designed to cope with much more loads than this ...

My problem is that the inhouse app on Forms is so complex that it is almost impossible for me to detect
who is producing the most bottleneck in that moment. A query on v$sqlarea is not fast enough for this, e.g.

Prompt 1. What is user XYZ doing ?

prompt ############################################################

SELECT
-- s.username, --who
-- s.user#, --who(UserID)

   s.status,
   s.sid,      --Session
   s.serial#,
   s.action,         --with what
   s.lockwait,
   substr(s.terminal,1,8) PC,
--      s.sql_address,
--      s.sql_hash_value,

   a.sql_text
FROM
   v$session s,
   v$sqlarea a
WHERE s.username = 'XYZ'
AND a.address = s.sql_address
AND a.hash_value = s.sql_hash_value
ORDER BY PC
/

and so I just query v$session for active sessions.

I know that there may be more details to ask for about the instance (parameters, sga, app design),
for now I would like to know where to start from, because reading several manuals,
I seem to miss the right hint ...

Here are the instance parameters:

  1* select name, value from v$parameter SQL> select substr(name,1,30), substr(value,1,40) from v$parameter   2 order by name;

SUBSTR(NAME,1,30) SUBSTR(VALUE,1,40)
------------------------------ ----------------------------------------

active_instance_count
always_anti_join               NESTED_LOOPS
always_semi_join               STANDARD
aq_tm_processes                0
audit_file_dest                ?/rdbms/audit
audit_trail                    NONE
background_core_dump           full
background_dump_dest           /u01/app/oracle/admin/ora8/bdump
backup_tape_io_slaves          FALSE
bitmap_merge_area_size         1048576
blank_trimming                 FALSE
buffer_pool_keep
buffer_pool_recycle
commit_point_strength          1
compatible                     8.1.7.0.0
control_file_record_keep_time  7
control_files                  /u01/oradata/ora8/control01.ctl, /u02/or...
core_dump_dest                 /u01/app/oracle/admin/ora8/cdump
cpu_count                      2
create_bitmap_area_size        8388608
cursor_sharing                 EXACT
cursor_space_for_time          FALSE
db_block_buffers               30000
db_block_checking              FALSE
db_block_checksum              FALSE
db_block_lru_latches           4
db_block_max_dirty_target      30000
db_block_size                  4096
db_domain                      world
db_file_direct_io_count        64
db_file_multiblock_read_count  32
db_file_name_convert
db_files                       40
dblink_encrypt_login           FALSE
db_name                        ora8
dbwr_io_slaves                 0
db_writer_processes            4
disk_asynch_io                 TRUE
distributed_transactions       275
dml_locks                      500
enqueue_resources              2075
event
fast_start_io_target           30000

fast_start_parallel_rollback LOW
fixed_date
gc_defer_time                  10
gc_files_to_locks
gc_releasable_locks            0
gc_rollback_locks              0-128=32!8REACH
global_names                   TRUE
hash_area_size                 1280000
hash_join_enabled              TRUE
hash_multiblock_io_count       0
hi_shared_memory_address       0
hs_autoregister                TRUE
ifile                          /u01/app/oracle/admin/ora8/pfile/configo...
instance_groups

SUBSTR(NAME,1,30) SUBSTR(VALUE,1,40)
------------------------------ ----------------------------------------

instance_name                  ora8
instance_number                0
java_max_sessionspace_size     0
java_pool_size                 32768
java_soft_sessionspace_limit   0
job_queue_interval             60
job_queue_processes            1
large_pool_size                0
license_max_sessions           0
license_max_users              0
license_sessions_warning       0
lm_locks                       12000
lm_ress                        6000

local_listener
lock_name_space
lock_sga                       FALSE
log_archive_dest               /sicher/arch/
log_archive_dest_state_1       enable
log_archive_dest_state_2       enable
log_archive_dest_state_3       enable
log_archive_dest_state_4       enable
log_archive_dest_state_5       enable
log_archive_dest_1
log_archive_dest_2
log_archive_dest_3
log_archive_dest_4
log_archive_dest_5
log_archive_duplex_dest
log_archive_format             ARC_%T_%S.arc
log_archive_max_processes      1
log_archive_min_succeed_dest   1
log_archive_start              FALSE
log_archive_trace              0
log_buffer                     524288
log_checkpoint_interval        100000
log_checkpoints_to_alert       FALSE
log_checkpoint_timeout         1800
log_file_name_convert
max_commit_propagation_delay   700
max_dump_file_size             10240
max_enabled_roles              30
max_rollback_segments          220
mts_circuits                   0
mts_dispatchers
mts_listener_address
mts_max_dispatchers            5
mts_max_servers                20
mts_multiple_listeners         FALSE
mts_servers                    0
mts_service                    ora8
mts_sessions                   0
nls_calendar
nls_comp
nls_currency
nls_date_format

nls_date_language
nls_dual_currency

SUBSTR(NAME,1,30) SUBSTR(VALUE,1,40)
------------------------------ ----------------------------------------

nls_iso_currency
nls_language                   AMERICAN
nls_numeric_characters
nls_sort
nls_territory                  AMERICA
nls_time_format
nls_timestamp_format
nls_timestamp_tz_format
nls_time_tz_format
object_cache_max_size_percent  10
object_cache_optimal_size      102400
open_cursors                   1500
open_links                     4
open_links_per_instance        4
ops_interconnects
optimizer_features_enable      8.1.7
optimizer_index_caching        0
optimizer_index_cost_adj       100
optimizer_max_permutations     80000
optimizer_mode                 CHOOSE
optimizer_percent_parallel     0
oracle_trace_collection_name
oracle_trace_collection_path   ?/otrace/admin/cdf
oracle_trace_collection_size   5242880
oracle_trace_enable            FALSE
oracle_trace_facility_name     oracled
oracle_trace_facility_path     ?/otrace/admin/fdf
os_authent_prefix              ops$
os_roles                       FALSE

O7_DICTIONARY_ACCESSIBILITY TRUE
parallel_adaptive_multi_user   FALSE
parallel_automatic_tuning      FALSE
parallel_broadcast_enabled     FALSE
parallel_execution_message_siz 2148
parallel_instance_group
parallel_max_servers           5
parallel_min_percent           0
parallel_min_servers           0
parallel_server                FALSE
parallel_server_instances      1
parallel_threads_per_cpu       2
partition_view_enabled         FALSE
plsql_v2_compatibility         FALSE
pre_page_sga                   FALSE
processes                      300
query_rewrite_enabled          FALSE
query_rewrite_integrity        enforced
rdbms_server_dn
read_only_open_delayed         FALSE
recovery_parallelism           0
remote_dependencies_mode       TIMESTAMP
remote_login_passwordfile      NONE
remote_os_authent              FALSE
remote_os_roles                FALSE
replication_dependency_trackin TRUE
resource_limit                 FALSE

resource_manager_plan

SUBSTR(NAME,1,30) SUBSTR(VALUE,1,40)
------------------------------ ----------------------------------------
rollback_segments r01, r02, r03, r04, r05, r06, r07, r08, ... r31

row_locking                    always
serializable                   FALSE
serial_reuse                   DISABLE
service_names                  ora8.WORLD, escala1.
session_cached_cursors         0
session_max_open_files         10
sessions                       1000
shadow_core_dump               FULL
shared_memory_address          0
shared_pool_reserved_size      8000000
shared_pool_size               80000000
sort_area_retained_size        0
sort_area_size                 640000
sort_multiblock_read_count     2
sql_trace                      FALSE
sql_version                    NATIVE
sql92_security                 FALSE
standby_archive_dest           ?/dbs/arch
star_transformation_enabled    FALSE
tape_asynch_io                 TRUE
text_enable                    FALSE
thread                         0
timed_os_statistics            0
timed_statistics               FALSE
tracefile_identifier
transaction_auditing           TRUE
transactions                   1100
transactions_per_rollback_segm 5
use_indirect_data_buffers      FALSE
user_dump_dest                 /u01/app/oracle/admin/ora8/udump
use_sigio                      TRUE
utl_file_dir                   /u01/utlfile

204 Zeilen ausgewählt.

Some heavily dml-ed table have freelists > 1 ans initrans > 1, all tables and indexes have maxtrans 255.

Maybe some guru can see more than me ... I do not ask for a glassball solution, I would be happy with some tips. Is it an instance tuning issue, or would I have to focus more on the app (which would be dredging the oceans ...) ?

Thank You in advance, sorry for the long post Jan Received on Wed Apr 30 2003 - 03:03:04 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US