You are on page 1of 2

PERFORMANCE CHECK LIST

A. Please review performance note and send


A.1. -- worksheet definition screens
A.2 -- java traced console content, C.Panel - Java -Advanced enable tracing, console, show; java heap
space / client and server settings
A.3 -- collaborator.log with time stamp of running the worksheet

B. Send database parameters -


B.1. DB_BLOCK_SIZE - The block size in the schema should be set to at least 16k, but only if this is the
installation time. Do NOT change it if you have already started working with Demantra / old
installations. But new Tablespaces for Demantra tables can be created and then you may move those
tables.
B.2. 16k BUFFER CACHE - db_cache_size should be set to 16k.
Demantra system runs better when it has more memory in the Oracle Server Buffer Cache.
This change should decrease the number of physical I/O s that are done and hence results in better
performance

B.3. Optimizer_index_caching - should be set between 75 to 100.


This parameter helps the optimizer know, on average, how much of an index resides inside the data
buffer.
Setting parameter to a higher value makes nested loops, joins and IN-list iterators look less expensive
to the optimizer over hash or sort-merge joins or full table scans.

B.4. Optimizer_index_cost_adj
Demantra is very sensitive to Oracle database table scans.
Setting this parameter between 25 and 50 reduces the cost to access the indexes and should reduce
the database response time.

B.5. OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES should be set to false.


B.6. OPTIMIZER_USE_SQL_PLAN_BASELINES should be set to false.

B.7. db_file_multiblock_read_count

C. Index advisor screens

D. Send worksheet parameters related


- query_run.per_user = 12- threadpool.query_run.per_user
- query_run.size = 60- Threadpool.query_run.size
- threadpool.query_run.per_user=16 (seems optimal to some environments and yields the
fastest response time for paged worksheets)
- worksheet.full.load=1 (used when using cross tab worksheets)
- client.worksheet.calcSummaryExpressions=0
- Remove if needed the custom time levels - it may highly impact performance
- worksheet.data.comb.block_size
- PGA_Aggregate_Target 4GB
- SGA_TARGET 1/2 Sizing Estimate for RAM
- SGA_MAX_SIZE – Same as SGA_TARGET
- BUFFER_CACHE (at least 16k Buffer Cache) to support 16k block data
Large rows in larger block size reduce row chaining and improve I/O; Larger block sizes can
maximize compression, minimize waste;
Small rows in large block size cause contention
Choose minimum of MEMORY_TARGET, MEMORY_MAX_SIZE for 11g

E. Set / send
-- MaxDBConnections, =10*no.of concurrent users;
-- threadpool.query_run.size = 4*no.of concurrent users;
-- SQLNET.EXPIRE_TIME should be 3 or 5;

F. Send chaining and fragmentation sql results:


F.1 -- select table_name, chain_cnt, num_rows, (chain_cnt/num_rows)*100 percent from user_tables
where chain_cnt >0 and num_rows > 0 order by chain_cnt desc;
F.2 -- select (round(((select count(*) as cnt from (select <key columns>, relative_fno, block_number,
row_number, data_row, (lag(data_row) over(partition by relative_fno, block_number order by
row_number)) as prev_data_row from (select <key columns>
,relative_fno, block_number, row_number ,(dense_rank() over(partition by relative_fno, block_number
order by <key columns>)) as data_row from (select <key columns>
,dbms_rowid.rowid_relative_fno(rowid) relative_fno ,dbms_rowid.rowid_block_number(rowid) as
block_number ,dbms_rowid.rowid_row_number(rowid) as row_number from <table> ) c ) b ) a where
data_row != prev_data_row and data_row != prev_data_row + 1) / (select count(*) from
<table>)),3)*100) as "out of order ratio %" from dual;

G,. -- AWR report - Doc ID 748642.1 -- this note will help you to create AWR

H. Confirm you have run


begin
dbms_stats.gather_schema_stats(ownname=> 'XXX' , cascade=> TRUE);
--XXX = your restored Schema name
end;

I. Tablespaces:
-- SELECT tablespace_name, SUM(bytes_used/1024/1024) , SUM(bytes_free/1024/1024) FROM
V$temp_space_header GROUP BY tablespace_name;
-- select * from DBA_TEMP_FILES;
-- truncate the temporary tablespaces

J. Send DBHInts, BATCH parameters


-- select * from db_params where lower(pname) like '%hint%';
-- SELECT PNAME, VALUE_NUMBER FROM APS_PARAMS WHERE LOWER(PNAME) LIKE '%batch%';

You might also like