Child cursors

Timur Akhmadeev
Дата: 18.03.2011 11:46:24
Коллеги,

если у кого нибудь имеется ~OLTP @ 11.2.0.2 в (пре-)продакшне с uptime > 2 месяцев и есть возможность прогнать парочку запросов к v$sqlarea/v$sql - запустите, пожалуйста, с постом результатов сюда.
+
set linesize 120
col event format a40

select startup_time from v$instance;

select sql_id
     , version_count
     , (select count(*) from v$sql s where s.sql_id = a.sql_id) child_cnt
     , loaded_versions
     , trunc(sharable_mem / 1024 / 1024, 2) "Sh mem, M"
     , trunc(sharable_mem/version_count/1024, 2) "Per version, K"
     , executions
  from v$sqlarea a
 where version_count > loaded_versions * 100
   and loaded_versions > 10;

select event, total_waits, trunc(time_waited/100, 2) waited_s
  from v$system_event
 where event like 'library cache%'
 order by time_waited desc;

Спасибо.
comphead
Дата: 18.03.2011 11:50:14
Timur Akhmadeev,

11.2.0.1 не подойдет?
Timur Akhmadeev
Дата: 18.03.2011 12:08:36
Можно и 11.2.0.1. В принципе, не важно, продакшн или нет. Важно чтобы инстанс использовался приличное количество времени.
dbms_photoshop
Дата: 18.03.2011 12:39:33
Timur Akhmadeev, с adaptive cursor sharing боретесь?
К сожалению, у меня все заказчики на <= 10.2.
Timur Akhmadeev
Дата: 18.03.2011 13:05:37
Нет, пытаюсь понять
1. что такое v$sqlarea.VERSION_COUNT
2. какого х VERSION_COUNT растет, какие-то child-ы занимают память но не репортятся в v$sql
3. являются ли такие child-ы причиной проблем с "library cache: mutex X"
То, что VERSION_COUNT - не количество child уже понятно, но неожиданно и не дает покоя.
env
Дата: 18.03.2011 13:51:15
Timur Akhmadeev,

А что по таким курсорам в v$sql_shared_cursor.reason?
Timur Akhmadeev
Дата: 18.03.2011 15:04:42
env
А что по таким курсорам в v$sql_shared_cursor.reason?

Если бы там что-то было, я бы уже давно на это посмотрел. Количество строк в V$SQL / V$SQL_SHARED_CURSOR для определенных запросов отличается от V$SQLAREA.VERSION_COUNT в сотни раз в меньшую сторону.

Начальная просьба в силе. Если есть не продакшн, тоже пойдет.
gfather
Дата: 18.03.2011 15:19:19
VERSION           STARTUP_TIME              
----------------- ------------------------- 
11.2.0.1.0        20.01.2011                

SQL_ID        VERSION_COUNT          CHILD_CNT              LOADED_VERSIONS        Sh mem, M              Per version, K         EXECUTIONS             
------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- 

EVENT                                                            TOTAL_WAITS            WAITED_S               
---------------------------------------------------------------- ---------------------- ---------------------- 
library cache lock                                               82                     846.52                 
library cache pin                                                13                     2.03                   
library cache load lock                                          139                    1.05                   
library cache: mutex X                                           316                    0.21                   


pravednik
Дата: 18.03.2011 15:22:02
bill_admin
Дата: 18.03.2011 15:40:52
+
11.2.0.1> select banner from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE    11.2.0.1.0      Production
TNS for HPUX: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

11.2.0.1> set linesize 120
11.2.0.1> col event format a40
11.2.0.1>
11.2.0.1> select startup_time from v$instance;

STARTUP_TIME
-------------------
07.12.2010 14:12:39

11.2.0.1>
11.2.0.1> select sql_id
  2       , version_count
  3       , (select count(*) from v$sql s where s.sql_id = a.sql_id) child_cnt
  4       , loaded_versions
  5       , trunc(sharable_mem / 1024 / 1024, 2) "Sh mem, M"
  6       , trunc(sharable_mem/version_count/1024, 2) "Per version, K"
  7       , executions
  8    from v$sqlarea a
  9   where version_count > loaded_versions * 100
 10     and loaded_versions > 10;

no rows selected

11.2.0.1>
11.2.0.1> select event, total_waits, trunc(time_waited/100, 2) waited_s
  2    from v$system_event
  3   where event like 'library cache%'
  4   order by time_waited desc;

EVENT                                    TOTAL_WAITS   WAITED_S
---------------------------------------- ----------- ----------
library cache lock                           2530428  1111512.6
library cache: mutex X                        269379   45639.84
library cache pin                                  1      39.12
library cache load lock                           22        .25

11.2.0.1> select sql_id, version_count, loaded_versions from v$sqlarea where version_count>1e3;

SQL_ID        VERSION_COUNT LOADED_VERSIONS
------------- ------------- ---------------
4vs91dcv7u1p6         10625            7694
f711myt0q6cma          9911            5789



2 последних SQL - insert into sys.aud$.
Mismatches: INST_DRTLD_MISMATCH и BIND_LENGTH_UPGRADEABLE.
По этому поводу ожидается backport 10264886 на PSU3 (9952216).