powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Truncate секции не по названию, а как то еще?
18 сообщений из 18, страница 1 из 1
Truncate секции не по названию, а как то еще?
    #40032569
stil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v12

Используется интервальное секционирование. Названия партиций - системные SYS****. Как можно идентифицировать партицию кроме как по названию? Можно ли?
...
Рейтинг: 0 / 0
Truncate секции не по названию, а как то еще?
    #40032580
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Truncate секции не по названию, а как то еще?
    #40032596
stil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

не могу понять как этот ключ определяется. Или там имеется ввиду переименование секции в человекочитаемый формат?

Особенно непонятно как с интервальным секционированием. Задаешь шаблон именования?
...
Рейтинг: 0 / 0
Truncate секции не по названию, а как то еще?
    #40032598
oragraf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stil,

Там имеется в виду, что oracle сам определит нужную секцию на основе значений столбцов, которые входят в ключ. А столбцы из DDL таблицы возьми.
...
Рейтинг: 0 / 0
Truncate секции не по названию, а как то еще?
    #40032600
stil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oragraf,

Ну вот у меня таблица секционированная по интервалу - на каждое NUMBER значение добавляется отдельная партиция..
Что в данном случае будет означать

Код: plsql
1.
alter table truncate partition for (7);


?

Удалить секцию в которой значение ключа 7?
...
Рейтинг: 0 / 0
Truncate секции не по названию, а как то еще?
    #40032602
stil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если секционирован бОльший интервал? например значения ключа от 5 до 10? Как к такой секции обратиться?
...
Рейтинг: 0 / 0
Truncate секции не по названию, а как то еще?
    #40032611
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stil,

По любому ключу, подпадающему под условие для данной секции.
...
Рейтинг: 0 / 0
Truncate секции не по названию, а как то еще?
    #40032612
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stil
Удалить секцию в которой значение ключа 7?

Очистить секцию, в которую попадают ключи со значением 7 (и возможно другие, если интервал не единичный)
...
Рейтинг: 0 / 0
Truncate секции не по названию, а как то еще?
    #40032618
stil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

ага. Очистить конечно. Описка выше

По остальному - спасибо! Проверил уже.. Про "по любому из ключей" удалить все - прям не очевидно было
...
Рейтинг: 0 / 0
Truncate секции не по названию, а как то еще?
    #40038956
stil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как статистику по секции собирать? В gather_table_stats секцию надо явно прописывать
...
Рейтинг: 0 / 0
Truncate секции не по названию, а как то еще?
    #40039006
PuM256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
partname => (select partition_name from all_tab_partitions where table_owner = 'XX' and table_name = 'YY' and ...)
...
Рейтинг: 0 / 0
Truncate секции не по названию, а как то еще?
    #40039009
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stil,

курсором по user_tab_partitions и execute immediate

типа такого
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
declare
    v_tabname varchar2(128 char) := 'DROPME_T';
begin
    for v in 
    (
        select 
              q'{
              begin    
                  dbms_stats.gather_table_stats
                  (
                      ownname=>'}'||user||q'{',
                      tabname=>'}'||v_tabname||q'{',
                      partname=>'}'||partition_name||q'{',
                      cascade=>true, 
                      granularity=>'PARTITION'
                  ); 
              end;
              }' sql_ 
          from 
              user_tab_partitions 
          where 
              table_name = v_tabname 
              /*and last_analyzed is null*/
    ) loop
        execute immediate v.sql_;
        --dbms_output.put_line(v.sql_);
    end loop;
end;
/
...
Рейтинг: 0 / 0
Truncate секции не по названию, а как то еще?
    #40039012
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env
курсором по user_tab_partitions и execute immediate
А назачем?
...
Рейтинг: 0 / 0
Truncate секции не по названию, а как то еще?
    #40039017
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

А и правда, незачем.
...
Рейтинг: 0 / 0
Truncate секции не по названию, а как то еще?
    #40039061
stil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

Я просто подумал что раз появился синтаксис типа FOR, то логично было ожидать что и сбор статистики доработается.

Все понятно. Спасибо за ответ
...
Рейтинг: 0 / 0
Truncate секции не по названию, а как то еще?
    #40039064
stil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

Просто у меня например простая задача: интервальное секционирование. Влил мульярд данных в таблицу в новую секцию и надо дернуть статистику. Искать последнюю партицию? По high_value? По last_analysed?
...
Рейтинг: 0 / 0
Truncate секции не по названию, а как то еще?
    #40039226
Фотография Aliona
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stil
Искать последнюю партицию? По high_value? По last_analysed?


oracle 19
https://docs.oracle.com/en/database/oracle/oracle-database/19/tgsql/gathering-optimizer-statistics.html#GUID-63E195EB-10F4-428B-9912-3E98C2A957BF
13.3.8 Gathering Incremental Statistics on Partitioned Objects

12c
https://www.oracle.com/technetwork/database/bi-datawarehousing/twp-bp-for-stats-gather-12c-1967354.pdf
Incremental Statistics and Partition Exchange Data Loading
...
Рейтинг: 0 / 0
Truncate секции не по названию, а как то еще?
    #40039240
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stil
Искать последнюю партицию? По high_value? По last_analysed?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
select subobject_name
from dba_objects 
where data_object_id = (
    select dbms_rowid.rowid_object(rowid) 
    from your_table partition for (date '2020-01-01')
    where rownum = 1
)



если секция может быть пустой, то придется парсить high_value
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Truncate секции не по названию, а как то еще?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]