2016-05-11 6 views
3

Прочитайте о базе данных Oracle, и я узнаю об общих пулах.Что такое эквивалент кучи кучи в Oracle

Я использовал это как мой основной ссылке: https://docs.oracle.com/database/121/TGDBA/tune_shared_pool.htm#TGDBA558

После прочтения этого одно я до сих пор не ясно, как мы можем получить «сбросить» разделяемого пула

Например, давайте скажем, у меня есть приложение, которое имеет проблемы с потреблением памяти/ошибки из-за чрезмерного совместного использования пула ... как бы я узнал, какие хранимые procs, содержимое строковой переменной и т. д. елит все хранилище?

В Java мы просто возьмем кучу кучи. Дамп кучи показывает пакеты, классы, необработанные данные, которые были в памяти.

Что такое эквивалент кучи кучи в Oracle?

ответ

2

Посмотрите Oradebug

На странице:

Oradebug является команда, которая может быть выполнена из SQL * Plus (или Svrmgrl в Oracle 8i и нижних выпусков) для отображения или сброса диагностика информация.

Краткое описание на свалки here и here.

+0

Прохладный! Благодарю. Так есть ли встроенные инструменты от оракула, которые делают то же самое? Или, может быть, без колоколов? –

+1

Согласно второй ссылке «Этот инструмент в основном используется Oracle во всем мире».На самом деле я не уверен, есть ли что-нибудь еще, что вы могли бы использовать. – Diyarbakir

2

Когда вы сбрасываете общий пул Oracle, вы получите файл с десятками гигабайт. И вы заблокируете всю базу данных до ее завершения. Это то, что вы обычно НЕ хотите делать в производственной базе данных.

Возможности диагностики Oracle намного превосходят возможности JVM.

  • Для краткого взгляда на использование памяти вы ван использовать V$SGASTAT и v$sga_resize_ops
  • Прежде всего вы также можете заглянуть в прошлое и может анализировать прошлые проблемы. google для AWR, ASH, STATSPACK.
  • Блокирующие проблемы вы можете использовать повесить анализа инструмент
  • Для проблем непротиворечивости данных, которые можно использовать аудит или LogMiner
  • Для более подробной трассировки один сеанс можно использовать TKPROF, TRCA или даже мониторинг SQL в режиме реального времени. или v$active_session_history.

Oracle имеет то, что называется интерфейс ждать поэтому, когда база данных тратит некоторое время, делая что-то, какой-то счетчик увеличивается. Существуют различные инструменты, которые получают доступ к этим счетчикам. Каждый из них служит для определенной цели.

Итак, да, вы также можете сбросить общий пул Oracle, но это, как правило, самый последний способ, как диагностировать проблемы в Oracle.

+0

Отличный ответ. Я хотел бы немного бросить вам вызов - Вы сказали, что он более мощный, чем Java-кучу. ОК. Я хотел бы бросить вам вызов, чтобы ответить на вопрос: как я могу сбрасывать содержимое varchar определенного разбора в общий пул? Значение У меня есть синтаксический анализ, который делает это: '2 + 50 * .50325' Но я хочу, чтобы это:': initial +: fee *: factor', чтобы его можно было повторно использовать. Так что я исправлю их. Я бы хотел найти общий хранилище для ключевого слова «: initial +: fee», чтобы убедиться, что моя замена работает. java кучи свалки сделать это легко. мысли? –

+2

'select * from v $ sql где sql_text like = 'любой текст, который вы хотите'. Концепция Oracle отличается. Представьте, что JVM может предоставлять информацию для каждого метода; сколько раз это вызывалось, время выполнения, а если было заблокировано, то кем. – ibre5041

Смежные вопросы