Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Фактор кластеризации локального индекса / 7 сообщений из 7, страница 1 из 1
21.11.2016, 14:09
    #39351057
Миша78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фактор кластеризации локального индекса
Привет, форумчане))

Подскажите пожалуйста, как уменьшить фактор кластеризации локального индекса? Сейчас он почти равен количеству строк в таблице.

--ФАКТОР КЛАСТЕРИЗАЦИИ
Select I.OWNER,T.TABLE_NAME, I.INDEX_NAME, T.BLOCKS, I.CLUSTERING_FACTOR, I.NUM_ROWS
from ALL_INDEXES I, ALL_TABLES T
where I.table_name=T.table_name and I.owner=T.owner and I.owner='MMIKHAILOV'
and I.index_name='I_SALES_DATE';

BLOCKS Фактор кластеризации NUM_ROWS
MMIKHAILOV TRACKDOWNLOADS I_SALES_DATE 325 99714 99999


Ничего не дает:
ALTER INDEX MMIKHAILOV.I_SALES_DATE rebuild PARTITION SALES_2016_01
ALTER INDEX MMIKHAILOV.I_SALES_DATE rebuild PARTITION SALES_2016_02
ALTER INDEX MMIKHAILOV.I_SALES_DATE rebuild PARTITION SALES_2016_03

ALTER INDEX MMIKHAILOV.I_SALES_DATE COALESCE/REBUILD - ORA-08111:A partitioned index may not be coalesced as a whole





Таблица:

-- Create table
create table TRACKDOWNLOADS
(
downloadid NUMBER,
trackid NUMBER,
userid NUMBER,
downloadtime DATE
)
partition by range (DOWNLOADTIME)
(
partition SALES_2016_01 values less than (TO_DATE(' 2016-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace BIS_MIDDLE_I
pctfree 1
pctused 99
initrans 1
maxtrans 255,
partition SALES_2016_02 values less than (TO_DATE(' 2016-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace BIS_MIDDLE_I
pctfree 1
pctused 99
initrans 1
maxtrans 255,
partition SALES_2016_03 values less than (TO_DATE(' 2016-03-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace BIS_MIDDLE_I
pctfree 1
pctused 99
initrans 1
maxtrans 255,
partition SALES_2016_04 values less than (TO_DATE(' 2016-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace BIS_MIDDLE_I
pctfree 1
pctused 99
initrans 1
maxtrans 255,
partition SALES_MAX values less than (MAXVALUE)
tablespace BIS_MIDDLE_I
pctfree 1
pctused 99
initrans 1
maxtrans 255
storage
(
initial 8M
next 1M
minextents 1
maxextents unlimited
)
);
-- Create/Recreate indexes
create index I_SALES_DATE on TRACKDOWNLOADS (DOWNLOADTIME)
local;


Спасибо.
...
Рейтинг: 0 / 0
21.11.2016, 14:17
    #39351064
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фактор кластеризации локального индекса
Перестроить ТАБЛИЦУ -- уложить данные в нужном порядке
При этом может ухудшиться CF других индексов
...
Рейтинг: 0 / 0
21.11.2016, 16:00
    #39351194
Миша78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фактор кластеризации локального индекса
А есть ли команда без перестройки структуры таблицы?
...
Рейтинг: 0 / 0
21.11.2016, 16:10
    #39351206
ora601
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фактор кластеризации локального индекса
Миша78А есть ли команда без перестройки структуры таблицы?

Есть - create table as select order by :)
...
Рейтинг: 0 / 0
21.11.2016, 16:13
    #39351210
ora601
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фактор кластеризации локального индекса
Миша78А есть ли команда без перестройки структуры таблицы?

Сорри, прочитал как "для". Как ты это себе представляешь, перестроить структуру таблицы без перестройки структуры таблицы? Читать доку срочно .
...
Рейтинг: 0 / 0
22.11.2016, 02:18
    #39351544
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фактор кластеризации локального индекса
Структуру перестраивать не надо, надо изменить ПОРЯДОК
В твоем случае самое простое (в нерабочее время) примерно так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create table tmp_2016_01 tablespace bis_middle_i
as select * from trackdownloads partition (sales_2016_01) order by downloadtime
/
create index i_tmp_2016_01 on tmp_2016_01(downloadtime)
/
alter table trackdownloads exchange partition sales_2016_01 with table tmp_2016_01 including indexes
/
drop table tmp_2016_01 purge
/

И так для каждой секции
...
Рейтинг: 0 / 0
01.12.2016, 09:13
    #39358185
Миша78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фактор кластеризации локального индекса
Вячеслав Любомудров, спасибо большое.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Фактор кластеризации локального индекса / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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