Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Truncate секции не по названию, а как то еще? / 18 сообщений из 18, страница 1 из 1
30.12.2020, 12:27
    #40032569
stil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Truncate секции не по названию, а как то еще?
v12

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

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

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

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

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

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


?

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

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

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

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

По остальному - спасибо! Проверил уже.. Про "по любому из ключей" удалить все - прям не очевидно было
...
Рейтинг: 0 / 0
26.01.2021, 12:43
    #40038956
stil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Truncate секции не по названию, а как то еще?
А как статистику по секции собирать? В gather_table_stats секцию надо явно прописывать
...
Рейтинг: 0 / 0
26.01.2021, 14:24
    #40039006
PuM256
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Truncate секции не по названию, а как то еще?
partname => (select partition_name from all_tab_partitions where table_owner = 'XX' and table_name = 'YY' and ...)
...
Рейтинг: 0 / 0
26.01.2021, 14:31
    #40039009
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Truncate секции не по названию, а как то еще?
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
26.01.2021, 14:43
    #40039012
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Truncate секции не по названию, а как то еще?
env
курсором по user_tab_partitions и execute immediate
А назачем?
...
Рейтинг: 0 / 0
26.01.2021, 14:56
    #40039017
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Truncate секции не по названию, а как то еще?
Elic,

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

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

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

Просто у меня например простая задача: интервальное секционирование. Влил мульярд данных в таблицу в новую секцию и надо дернуть статистику. Искать последнюю партицию? По high_value? По last_analysed?
...
Рейтинг: 0 / 0
27.01.2021, 09:23
    #40039226
Aliona
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Truncate секции не по названию, а как то еще?
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
27.01.2021, 10:17
    #40039240
кит северных морей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Truncate секции не по названию, а как то еще?
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
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Truncate секции не по названию, а как то еще? / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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