Oracle посмотреть размер temp
I have a database with three tables. I need to move historic partitioned data to other schema Now that i´m planning to creatre the new "historic" tables. I don´t know how to measure the size of partition and subpartitions. Can u help me? please gimme some advices.
Thanxs in advance. Lou
You talk about tablespaces in your title but partitions and subpartitions in the text. Which one is it? And what have you tried? There's a lot of stuff available with a simple search, why didn't the basic stuff meet your needs?
@user2115594:dude you need to measure the tablespace size or each partition size in a particular table?
Yeah i´m sorry what i really need is to measure the subpartition size in my origin table. Each origin tables where created with partitions and subpartitions but they all insert data into 3 tablespaces. Next step is to create one tablespace for each subpartition
Not the answer you're looking for? Browse other questions tagged oracle11g tablespace or ask your own question.
Related
Hot Network Questions
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2022.5.12.42094
Временное табличное пространство, в противоположность тому, что можно предположить из его наименования, существует в базе данных постоянно, как и все прочие табличные пространства, такие как System и Sysaux. Однако данные во временном табличном пространстве имеют временный характер и существуют только на протяжении существования сеанса пользователя. Oracle использует временные табличные пространства в качестве рабочих областей для выполнения таких задач, как операции сортировки при выполнении запросов пользователей, и операции сортировки при создании индексов. Oracle не позволяет пользователям создавать объекты во временном табличном пространстве.
По определению временное табличное пространство хранит данные только на протяжении существования сеанса пользователя, и его данные не могут быть разделены между всеми пользователями. Производительность временного табличного пространства исключительно важна, когда приложение использует запросы, требующие интенсивной сортировки и хеширования, что подразумевает хранение промежуточных данных во временном табличном пространстве.
На заметку! СУБД Oracle Database пишет все данные программы в локальной области (PGA) порциями по 64 Кбайт, поэтому советуют создавать табличные пространства с размерами экстентов, кратными 64 Кбайт. Для крупных хранилищ данных и баз данных, поддерживающих системы принятия решений, которые интенсивно используют временные табличные пространства, рекомендуется размер экстента в 1 Мбайт.
Самый первый оператор после запуска экземпляра базы Oracle, который использует временное табличное пространство, создает сегмент сортировки, разделяемый всеми операциями сортировки в экземпляре. Когда вы останавливаете базу данных, она освобождает этот сегмент. Вы можете запросить представление V$SORT_SEGMENT, чтобы просмотреть выделение и освобождение места для этого сегмента сортировки. Увидеть, кто в данный момент использует сегмент сортировки, можно, опросив представление V$SORT_USAGE.Используйте представления V$TEMPFILE и DBA_TEMP_FILES, чтобы ознакомиться с подробностями о временных файлах, выделенных в данный момент временному табличному пространству.
Как упоминалось ранее, вы должны использовать конструкцию TEMPFILE при указании файлов, входящих в любое временное табличное пространство. С вашей точки зрения нет разницы между конструкцией DATAFILE, которая указывается для постоянного табличного пространства, и конструкцией TEMPFILE, специфицируемой для временного табличного пространства. Однако Oracle различает эти два типа файлов. Временные файлы содержат мало или вообще не содержат данных повторного выполнения, ассоциированных с ними.
Сокращение временных табличных пространств
Иногда может понадобиться увеличить временное табличное пространство, чтобы вместить данные очень крупного задания, которое интенсивно использует это временное табличное пространство. После завершения такого задания можно сократить это временное табличное пространство, используя конструкцию SHRINK SPACE в операторе ALTER TABLESPACE. Вот пример:
Конструкция SHRINK SPACE уменьшит временные файлы до минимального размера,который составляет около 1 Мбайт. С помощью конструкции KEEP можно задать минимальный размер для временных файлов, как показано ниже:
Oracle использует специальную логику при сжатии временных файлов во временном табличном пространстве. Предположим, что имеется временное табличное пространство, содержащее два временных файла по 1 Гбайт. Для сокращения табличного пространства до 1 Гбайт выдается следующая команда:
Если запросить представление V$TEMPFILE, можно будет увидеть следующее:
База данных сократит один из двух временных файлов вплоть до 1 Мбайт, а другой — только на 1 Мбайт, оставив в нем нетронутыми 999 Мбайт пространства. Если ваша цель — сократить определенный временный файл до заданного минимума, можете сделать это, указав имя временного файла, который нужно сократить:
Приведенный выше оператор ALTER TABLESPACE сокращает только указанный временный файл до размера, заданного в конструкции KEEP. Остальные временные файлы из табличного пространства TEMP остаются нетронутыми. Конструкция KEEP в приведенном выше операторе гарантирует, что временный файл, который был специфицирован, сохранит 500 Мбайт пространства. Следующий пример демонстрирует, как сократить отдельный временный файл, не указывая сохранившегося пространства:
Поскольку в предыдущем операторе конструкция KEEP указана не была, база данных сокращает указанный временный файл до минимально возможного размера, который составляет около 1 Мбайт.
Создание временного табличного пространства
Вы создаете временное табличное пространство точно так же, как и постоянное,лишь с тем отличием, что указываете конструкцию TEMPORARY в операторе CREATE TABLESPACE и подставляете эту конструкцию TEMPFILE вместо DATAFILE. Вот пример:
Конструкция SIZE во второй строке указывает размер файла данных и, как следствие, размер временного табличного пространства — 500 Мбайт. В приведенном операторе конструкция AUTOEXTEND ON приведет к автоматическому увеличению размера временного файла и вместе с ним — размера временного табличного пространства. По умолчанию все временные табличные пространства создаются с экстентами унифицированного размера — 1 Мбайт. Тем не менее, можно указать конструкцию UNIFORM SIZE,чтобы задать другой размер, как показано в следующем операторе:
В приведенном операторе конструкция EXTENT MANAGEMENT необязательна.Конструкция UNIFORM SIZE специфицирует специальный размер экстента в 16 Мбайт вместо 1 Мбайт по умолчанию.
Совет. При выделении места временному табличному пространству применяйте конструкцию TEMPFILE вместо DATAFILE.
Обычно принято создавать одно временное табличное пространство (именуемое, как правило, Temp) для каждой базы данных, но вполне можно иметь и несколько временных табличных пространств, входящих в группу временных табличных пространств,если база данных нуждается в выполнении интенсивных операций сортировки.Чтобы уничтожить данные во временном табличном пространстве по умолчанию,необходимо сначала воспользоваться командой ALTER TABLESPACE для создания нового табличного пространства по умолчанию в базе данных. Предыдущее временное табличное пространство по умолчанию затем можно уничтожить подобно любому другому.
На заметку! Oracle рекомендует устанавливать в качестве временного табличного пространства по умолчанию управляемое локально временное табличное пространство с унифицированным размером экстента в 1 Мбайт.
Создание группы временных табличных пространств
Когда вы назначаете первое временное табличное пространство в группу, то тем самым автоматически создаете группу. Чтобы создать группу табличных пространств, просто специфицируйте конструкцию TABLESPACE GROUP в операторе CREATE TABLESPACE,как показано ниже:
Приведенный оператор SQL создаст новое временное табличное пространство temp01 вместе с новой группой табличных пространств по имени tmpgrp1. Oracle создает новую группу табличных пространств, поскольку здесь при создании нового временного табличного пространства указана ключевая конструкция TABLESPACE GROUP.
Можно также создать группу временных табличных пространств, специфицируя ту же конструкцию TABLESPACE GROUP в команде ALTER TABLESPACE, как показано ниже:
Приведенный оператор заставит Oracle создать новую группу по имени tmpgrp1, поскольку ранее не существовало группы табличных пространств с таким именем.
Если вы специфицируете пару кавычек ('') вместо имени группы табличных пространств, вы тем самым неявно указываете Oracle не включать данное временное табличное пространство в группу. Вот пример:
Приведенный оператор создает временное табличное пространство по имени temp02,которое является обычным временным табличным пространством, не относящимся ни к одной группе временных табличных пространств.
Если полностью пустить конструкцию TABLESPACE GROUP, будет создано обычное временное табличное пространство, также не относящееся ни к одной из групп:
DBA_SEGMENTS
Как вам известно, база данных Oracle содержит несколько видов сегментов: таблиц,индексов, undo и т.д. Представление словаря данных DBA_SEGMENTS , помимо прочего,показывает имя и тип сегмента вместе с табличным пространством, к которому он относится. Это представление отображает детальную информацию о различных сегментах базы данных, что видно из листинга 2.
Группы временных табличных пространств
Крупные транзакции иногда могут приводить к переполнению временного пространства. Задачи, связанные с объемными сортировками, особенно включающие таблицы с несколькими разделами, приводят к значительной нагрузке на временные табличные пространства, от чего может пострадать производительность. В Oracle Database 10g была введена концепция группы временных табличных пространств, которая позволяет использовать временные табличные пространства в разных сеансах.
Ниже перечислены некоторые из основных характеристик группы временных табличных пространств.
- Группа временных табличных пространств должна состоять минимум из одного табличного пространства. Ограничений на максимальное их количество не существует.
- Если вы удалите все члены группы временных табличных пространств, группа также будет автоматически удалена.
- Группа временных табличных пространств имеет то же самое пространство имен,что и временные табличные пространства, являющиеся частью группы.
- Имя временного табличного пространства не может совпадать с именем любой из групп табличных пространств.
- При назначении временного табличного пространства пользователю можно применять имя группы временных табличных пространств вместо имени конкретного табличного пространства. Имя группы можно также использовать, назначая временное табличное пространство по умолчанию для всей базы данных.
Добавление табличного пространства к группе временных табличных пространств
Как показано в предыдущем разделе, с помощью команды ALTER TABLESPACE можно добавить временное табличное пространство в группу. Можно также изменить группу, к которой относится данное табличное пространство, используя команду ALTER TABLESPACE. Например, можно указать, что табличное пространство temp02 принадлежит группе tmpgrp2, выполнив следующую команду:
При этом база данных создаст новую группу по имени tmpgrp2, если такой группы еще не существовало.
Изменение временного табличного пространства
С помощью команды ALTER TEMPORARY TABLESPACE можно выполнять различные задачи управления временным табличным пространством, включая добавление временного файла для его увеличения. Вот пример того, как можно увеличить временное табличное пространство:
Аналогичным образом можно использовать команду ALTER TABLESPACE для изменения размера временного файла:
Для уничтожения временного файла и удаления соответствующего файла операционной системы служит следующий оператор:
Когда вы уничтожаете временный файл, относящийся к временному табличному пространству, то само табличное пространство остается в использовании.
Временное табличное пространство можно сократить, как и любое нормальное табличное пространство. Следующий пример показывает применение команды ALTER TABLESPACE для сокращения временного табличного пространства:
V$DATAFILE
Представление V$DATAFILE содержит информацию об имени файла данных, номер табличного пространства, статус, временную метку последнего изменения и т.п. Представление V$TEMPFILE показывает ту же информацию о файлах временных табличных пространств. Представление V$DATAFILE отображает важную информацию, когда его соединить с представлением V$FILESTAT .
DBA_TABLESPACES
Представление DBA_TABLESPACES — очень важное представление словаря для управления табличными пространствами. С помощью этого представления можно много узнать о табличных пространствах, например, отключены или подключены ли они в данный момент (offline/online); являются ли они undo, постоянными или временными; тип управления экстентами, тип расширения, тип управления пространством сегментов;состоят они из bigfile или smallfile. В статье наших блогов “Создание табличных пространств” уже были даны примеры применения этого представления. Представление словаря DBA_TABLESPACES служит для поиска важной информации о табличном пространстве, в том числе:
- размер начального экстента;
- размер следующего экстента;
- максимальное количество экстентов по умолчанию;
- статус (онлайновое, отключенное, только для чтения);
- содержимое (постоянное, временное или undo);
- тип управления экстентами ( DICTIONARY или LOCAL );
- управление пространством сегмента ( AUTO или MANUAL ).
Преимущества групп временных табличных пространств
Использование группы временных табличных пространств вместо обычного одиночного временного табличного пространства обеспечивает следующие преимущества.
- Запросы SQL с гораздо меньшей вероятностью приведут к переполнению места,отведенного для сортировки, потому что теперь запрос может параллельно использовать несколько временных табличных пространств для сортировки.
- Можно специфицировать несколько временных табличных пространств по умолчанию на уровне базы данных.
- Параллельно работающие серверы в параллельных операциях будут эффективно использовать несколько временных табличных пространств.
- Один пользователь может параллельно использовать несколько временных табличных пространств в разных сеансах.
DBA_TABLESPACE_GROUPS
Вы можете собирать набор временных табличных пространств в группы временных табличных пространств. Представление DBA_TABLESPACE_GROUPS показывает все группы табличных пространств, имеющиеся в базе данных. В этом представлении можно также увидеть индивидуальное имя каждого табличного пространства в каждой такой группе.
Просмотр информации о группах табличных пространств
Для управления группами временных табличных пространств в базе данных можно использовать новое представление словаря данных DATA_TABLESPACE_GROUPS. Ниже показан пример простого запроса к этому представлению, который отображает имена всех групп табличных пространств:
Чтобы найти соответствие между табличными пространствами и группами, к которым они принадлежат, можно также воспользоваться представлением DBA_USERS. Вот пример:
A mandatory tablespace that consists of the data dictionary, including definitions of tables, views, and stored procedures needed by the database. Oracle Database automatically maintains information in this tablespace.
A mandatory, auxiliary system tablespace that is used by many Oracle Database features and products. This tablespace contains content that was previously stored in the DRSYS , CWMLITE , XDB , ODM , OEM_REPOSITORY , and SYSTEM tablespaces.
An user-created tablespace that consists of application data. As you create and enter data into tables, Oracle Database fills this space with your data.
A mandatory tablespace that contains temporary tables and indexes created during SQL statement processing. You may have to expand this tablespace if you run SQL statements that involve significant sorting, such as ANALYZE COMPUTE STATISTICS on a very large table, or the constructs GROUP BY , ORDER BY , or DISTINCT .
System-managed tablespaces that contain undo data for each instance. Each Oracle RAC instance uses a different value for n in the tablespace name. These tablespaces are used for automatic undo management.
A system tablespace that contains rollback segments. If you do not use automatic undo management, then you must configure the RBS tablespace. The RBS tablespace should only be used when needed for compatibility with earlier versions of Oracle Database.
Посмотреть, какие табличные пространства имеются в базе данных можно следующим запросом.
В каких файлах хранятся табличные пространства.
DBA_FREE_SPACE
Представление DBA_FREE_SPACE сообщает о том, сколько свободного места в базе данных имеется на каждый данный момент. Запрос из листинга 1 ниже позволяет узнать,сколько свободного места есть в табличных пространствах. Обратите внимание, что место, относящееся к удаленной таблице, которая находится в “корзине”, отображается в этом представлении как свободное. Однако его нельзя использовать для размещения любого другого объекта. Вы получаете это пространство обратно только после того, как окончательно удалите элемент оператором ALTER TABLE. PURGE .
Табличное пространство system
В табличном пространстве system хранится «Словарь данных Oracle»
Каждая база данных Oracle содержит набор таблиц, доступных только для чтения и известных как словарь данных (data dictionary), который содержит метаданные (информацию о различных компонентах базы данных). Словарь данных Oracle – сердце системы управления базой данных.
Словарь данных создается при создании экземпляра базы данных выполнением инструкций в файле $ORACLE_HOME/rdbms/admin/catalog.sql
Oracle не позволяет обращаться к таблицам словаря данных напрямую. Он создает представления на базе этих таблиц и общедоступные синонины для тих представлений, к которым могут обращаться пользователи. Существует три набора представлений словаря данных: USER, ALL и DBA – каждый из которых содержит сходный набор представлений со сходным набором столбцов.
Посмотреть содержимое табличного пространства system
V$FILESTAT
Представление V$FILESTAT снабжает детальной информацией о статистике чтения/записи файла, включая количество физических операций чтения и записи, время,потребовавшееся на эти операции, а также среднее время одной операции чтения и записи в миллисекундах. Представление V$TABLESPACE содержит информацию о табличных пространствах. Листинг 5 демонстрирует, как можно соединить представления V$DATAFILE, V$TABLESPACE и V$FILESTAT для получения полезной информации о дисковых операциях ввода-вывода.
Пакет DBMS_SPACE удобен для проверки того, сколько места занято и сколько свободного пространства осталось в различных сегментах, таких как сегменты таблиц, индексов и кластеров. Напомним, что представление словаря данных DBA_FREE_SPACE позволяет находить информацию о свободном месте в табличных пространствах и файлах данных, но не в объектах базы данных. Если пакет DBMS_SPACE не используется, сложно будет узнать, сколько свободного места есть в сегментах, выделенных различным объектам базы данных. Пакет DBMS_SPACE позволяет ответить на следующие вопросы:
- Сколько свободного пространства я могу использовать перед тем, как понадобится следующий экстент?
- Сколько блоков данных находятся выше маркера максимального уровня заполнения (high-water mark — HWM)?
Представления словаря данных DBA_EXTENTS и DBA_SEGMENTS предоставляют массу информации о месте, выделенном объектам, таким как таблицы и индексы, но вы не сможете узнать из них о том, сколько пространства занято и сколько осталось свободного. Если проанализировать таблицы, то столбец BLOCKS даст HWM — максимальный размер, которого достигала таблица. Однако если таблица подвергалась большому количеству операций вставки и удаления, то HWM не будет показательным индикатором реального использованного пространства. Пакет DBMS_SPACE идеален для нахождения использованного и свободного пространства, оставшегося в объектах.
Пакет DBMS_SPACE включает в себя три основных процедуры: процедура UNUSED_SPACE даст информацию о неиспользованном пространстве в сегменте объекта,процедура FREE_BLOCKS — информацию о количестве свободных блоков в сегменте, а процедура SPACE_USED — подробности об использованном пространстве в блоках.
Давайте внимательнее рассмотрим процедуру UNUSED_SPACE и посмотрим, как ее применять для получения детальной информации о неиспользованном пространстве.Процедура имеет три входных (IN) параметра (четвертый — параметр по умолчанию) и семь выходных (OUT) параметров. В листинге ниже показан вывод, полученный при выполнении процедуры UNUSED_SPACE.
Табличное пространство sysaux
Табличное пространство sysaux служит вспомогательным табличным пространством по отношению к табличному пространству system.
Для управления табличными пространствами в базе данных Oracle Database нужно познакомиться с несколькими ключевыми табличными пространствами:
- DBA_TABLESPACES
- DBA_FREE_SPACE
- DBA_SEGMENTS
- DBA_DATA_FILES
- DBA_TABLESPACE_GROUPS
В дополнение к этим табличным пространствам для управления и мониторинга табличных пространств в базе данных также очень пригодятся динамические представления производительности V$DATAFILE и V$FILESTAT . Ниже мы кратко опишем ключевые представления словаря, касающиеся табличных пространств.
Назначение групп временных табличных пространств при создании или изменении пользователей
Когда вы создаете новых пользователей, вы можете назначать им группы временных табличных пространств вместо одного временного табличного пространства. Вот пример:
Создав пользователя, можно также применить оператор ALTER USER, чтобы изменить группу табличных пространств, которую он будет использовать. Вот оператор SQL,который делает это:
Временное табличное пространство по умолчанию
Когда вы создаете пользователей базы данных, то должны назначить каждому временное табличное пространство по умолчанию, в котором они будут выполнять свои временные работы, подобные сортировке. Если не указать явно пользователю его временное табличное пространство, для этих целей применяется табличное пространство System, что может привести к высокой степени фрагментации этого табличного пространства, помимо его заполнения и торможения всей деятельности базы данных.Избежать таких нежелательных ситуаций можно, создав временное табличное пространство по умолчанию (default) для базы данных при ее создании с помощью конструкции DEFAULT TEMPORARY TABLESPACE. Oracle затем будет использовать это временное табличное пространство по умолчанию для всех пользователей, кому таковое не будет назначено явно. Создание временного табличного пространства по умолчанию будет продемонстрировано в моей новой статье, где пойдет речь о создании новой базы данных Oracle.
Обратите внимание, что если не создать табличное пространство по умолчанию при создании базы данных, сделать его можно и впоследствии. Нужно просто создать временное табличное пространство, как показано в предыдущем примере, и сделать его временным табличным пространством по умолчанию для всей базы данных, используя оператор вроде следующего:
Узнать имя текущего временного табличного пространства по умолчанию для базы данных можно, выполнив следующий запрос:
На заметку! Для временного табличного пространства использовать конструкцию AUTOALLOCATE нельзя. По умолчанию все временные табличные пространства создаются с локально управляемыми экстентами унифицированного размера. Размер экстента по умолчанию составляет 1 Мбайт, как и для всех других табличных пространств, но при желании можно задать другой размер экстента при создании временного табличного пространства.
4 Answers 4
The following query can be used to detemine tablespace and other params:
For your case if you want to know the partition name and it's size just run this query:
One of the way is Using below sql queries
One way to check the tablespace size in oracle is to run this query
SELECT b.tablespace_name, tbs_size SizeGb, a.free_space FreeGb FROM ( SELECT tablespace_name, ROUND (SUM (bytes) / 1024 / 1024 / 1024, 2) AS free_space FROM dba_free_space GROUP BY tablespace_name) a, ( SELECT tablespace_name, SUM (bytes) / 1024 / 1024 / 1024 AS tbs_size FROM dba_data_files GROUP BY tablespace_name) b WHERE a.tablespace_name(+) = b.tablespace_name ORDER BY 1
Установка группы в качестве табличного пространства по умолчанию для базы данных
Вы можете использовать группу временных табличных пространств в качестве временного табличного пространства базы данных по умолчанию. Если выполнить показанный ниже оператор, то все пользователи, не имеющие временного табличного пространства по умолчанию, смогут использовать любое табличное пространство из группы tmpgrp1 в качестве временного табличного пространства по умолчанию:
Приведенный оператор ALTER DATABASE назначает все табличные пространства из группы tmpgrp1 в качестве временных табличных пространств по умолчанию для всей базы данных.
DBA_DATA_FILES
Представление словаря данных DBA_DATA_FILES — еще одно исключительно полезное представление, к которому вы будете часто обращаться при управлении пространством хранилища базы данных. Это представление запрашивается для нахождения имен всех файлов данных, табличных пространств, к которым они относятся, и информации об этих файлах, такой как количество байтов и блоков, а также относительный номер файла. Простой запрос к представлению DBA_DATA_FILES отображает все файлы данных, как показано в листинге 3.
Представление DBA_DATA_FILES особенно полезно, когда вы соединяете его с другим представлением словаря данных, как в примере, который иллюстрирует листинг ниже. Этот запрос производит отчет, показывающий размеры табличных пространств, свободное и занятое место, а также процент занятого места в каждом табличном пространстве. В конце вы также получаете сумму всего пространства хранилища, выделенного всем табличным пространствам, а также распределение свободного и занятого пространства в базе данных.
Представление DBA_TEMP_FILES — аналог представления DBA_DATA_FILES , дающего информацию о временных файлах временных табличных пространств.
Читайте также: