Oracle Автономная база данных - Используется избыточное хранилище? - PullRequest
2 голосов
/ 14 июля 2020

Я пробовал автономную БД oracle. Хотел понять, в чем суета о службах oracle APEX, которые позволяют напрямую создавать приложения на базе данных.

  • БД поставляется с кучей системных таблиц (oracle_mainolated flag = y в all_tables ).
  • Он также содержит образец набора данных SSB.
  • Согласно документации, образец набора данных не должен учитываться при использовании.
  • Однако я вижу 2.7 G использование для fre sh DB.
  • Далее, после добавления и удаления образца приложения APEX - использование составляет 4.8 G .

Примечание: Я создал простую схему и одну таблицу с <1000 строк. </p>

Результат:

SELECT
    OWNER,
    SUM(BYTES) / 1024.0 / 1024.0 as SIZE_MB
FROM
    DBA_EXTENTS
GROUP BY
    ROLLUP(OWNER)
ORDER BY
    SIZE_MB DESC
"OWNER",            "SIZE_MB",          
"",                 168400.6875,   <- Total
"SSB",              166316.9375,   <- Sample (should not be counted)
"SYS",              1059.875,
"APEX_190200",      888.4375,
"MDSYS",            72.75,
"AUDSYS",           26.6875,
"APEX_200100",      13.4375,
"SH",               5.75,
... 
A few more rows with size < 5 MB

Используемое хранилище

1 Ответ

1 голос
/ 14 июля 2020

При установке образца приложения APEX предлагает создать для вас рабочее пространство. Указанные рабочие области также находятся в SCHEMA, учетной записи Oracle USER. При необходимости он создаст это новое для вас.

Когда вы удаляете образец приложения, все «отбрасывается», однако, если вы создали нового ПОЛЬЗОВАТЕЛЯ / СХЕМУ для хранения вашего приложения, оно НЕ удаляется.

Кроме того, таблицы при удалении НЕ очищаются.

Если вы go попали в корзину, вы можете увидеть «остатки» вашего примера приложения.

enter image description here

You can purge that schema's recycle bin, or even better, just DROP the user entirely.

The data available to you, e.g. SSB, that's stored in an Oracle Managed schema, will show in any database report, but you won't be charged for it.

The amount of data you're observing seems more than a Sample APEX app would ever account for.

If you query this, you'll see all of the SEGMENTS (tables, partitions, LOBs) in your DB, sorted by size DESC.

select OWNER                "Owner",
       TABLESPACE_NAME      "Tablespace",
       SEGMENT_NAME         "Segment",
       EXTENTS              "Extents",
       BYTES / 1024 / 1024      "Megabytes"
  from SYS.DBA_SEGMENTS
 where UPPER(
              SUBSTR(
                     SEGMENT_NAME,
                     1,
                     4
              )
       ) != 'BIN$' and
       UPPER(
              SUBSTR(
                     SEGMENT_NAME,
                     1,
                     3
              )
       ) != 'DR$' and
       ( :TABLESPACE_NAME is null or
         INSTR(
                LOWER(TABLESPACE_NAME),
                LOWER(
                        :TABLESPACE_NAME
                 )
         ) > 0 )
 order by OWNER,
          EXTENTS desc,
          TABLESPACE_NAME,
          SEGMENT_NAME 

Drop and purge as necessary.

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...