Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/showflat.php?Number=8200949&src=arc&showlite=
Дата изменения: Unknown
Дата индексирования: Tue Apr 12 14:35:44 2016
Кодировка: Windows-1251
[Oracle] Вопрос про организацию индекса - Public forum of MSU united student networks
Root | Google | Yandex | Mail.ru | Kommersant | Afisha | LAN Support
  
Technical >> Development (Archive)

Страницы: 0 | 20 | показать все | след. страница
High_egor
Carpal Tunnel

Рег.: 27.12.2003
Сообщений: 4119
Рейтинг: 1233
  [Oracle] Вопрос про организацию индекса
      24.12.2008 12:46
 

Вопрос:
Есть таблица, с таким вот DDL
 
code:
CREATE TABLE ARCH_SIGNALS.TAG_000001 ( DATETIME TIMESTAMP(6), VALUE NUMBER(14, 6), QUALITY NUMBER(3)) TABLESPACE ARCH_SIGNALS; CREATE INDEX ARCH_SIGNALS.IDX_TAG_000001 ON ARCH_SIGNALS.TAG_000001 (DATETIME) TABLESPACE INDX LOCAL;


таблица и индекс находятся в разных tablespace'ах и соотв. в разных датафайлах

при заполнении таблицы большим объемом данных датафайл индекса имеет бОльший размер чем датафайл таблицы (больше примерно на 30%)

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



DarkGrayМодератор
Carpal Tunnel

Рег.: 30.09.2002
Сообщений: 31411
Рейтинг: 8952
  Re: [Oracle] Вопрос про организацию индекса [re: High_egor]
      24.12.2008 12:51
 

primary key у таблицы какой?

ps
так в индексе обычно хранится поле из индекса + primary key.

High_egor
Carpal Tunnel

Рег.: 27.12.2003
Сообщений: 4119
Рейтинг: 1233
  Re: [Oracle] Вопрос про организацию индекса [re: DarkGray]
      24.12.2008 13:20
 


 
В ответ на:

primary key у таблицы какой?



его там нету, в DDL прописана исчерпывающая информация о структуре таблицы



Yorik

Рег.: 01.09.2005
Сообщений: 2476
Из: Москва
Рейтинг: 633
  Re: [Oracle] Вопрос про организацию индекса [re: High_egor]
      24.12.2008 13:38
 

а вот сделай

High_egor
Carpal Tunnel

Рег.: 27.12.2003
Сообщений: 4119
Рейтинг: 1233
  Re: [Oracle] Вопрос про организацию индекса [re: Yorik]
      24.12.2008 13:40
 

а вот не нужен, может быть несколько записей с одинаковым полем DATETIME (по которому сделан индекс)



botWi

Рег.: 22.11.2003
Сообщений: 10160
Из: Moscow
Рейтинг: 1764
  Re: [Oracle] Вопрос про организацию индекса [re: DarkGray]
      24.12.2008 14:21
1

В ответ на:

так в индексе обычно хранится поле из индекса + primary key.




а разве не rowid?




Хватит дрочить на рейтинги
botWi

Рег.: 22.11.2003
Сообщений: 10160
Из: Moscow
Рейтинг: 1764
  Re: [Oracle] Вопрос про организацию индекса [re: High_egor]
      24.12.2008 14:22
1

В ответ на:

По идее размер индекса должен быть меньше чем таблица, т.к. в него включено только одно поле из таблицы...




нууу
если остальные поля маленькие
и это одно поле хреново индексируется (например все значения разные и большие)
то ...



Хватит дрочить на рейтинги
Yorik

Рег.: 01.09.2005
Сообщений: 2476
Из: Москва
Рейтинг: 633
  Re: [Oracle] Вопрос про организацию индекса [re: botWi]
      24.12.2008 14:23
 

а, да, поля будут вноситься в индекс только если попросить (явно указать или сделать кластеризованный индекс)
а так - только rowid. но что-то мне подсказывает, что таки надо автору сделать primary key.

High_egor
Carpal Tunnel

Рег.: 27.12.2003
Сообщений: 4119
Рейтинг: 1233
  Re: [Oracle] Вопрос про организацию индекса [re: High_egor]
      24.12.2008 14:29
 

Добавлю: характер данных - записи с монотонным увеличением поля DATETIME (архивация показаний с прибора с частотой записи примерно раз в секунду).

Мне эта база досталась в наследство, возникли сомнения в оптимальности ее организации...
На данный момент размер таблицы 80Гб, индекса 120Гб.



Yorik

Рег.: 01.09.2005
Сообщений: 2476
Из: Москва
Рейтинг: 633
  Re: [Oracle] Вопрос про организацию индекса [re: High_egor]
      24.12.2008 14:34
 

если нужно только это, то зачем отделять индекс? сделай кластеризованный.

Zoobastik
Комок меха

Рег.: 18.10.2003
Сообщений: 7460
Из: За спиной
Рейтинг: 4347
  Re: [Oracle] Вопрос про организацию индекса [re: High_egor]
      24.12.2008 14:49
1

Добавлю свои 5 копеек:
Присоединюсь к подозрению, что в индексе rowid хранится, что и увеличивает размер индекса. Так же стоит проверить селективность индекса - как много на одно DATETIME приходится значений в среднем.

Если хочется ускорить чтене данных, то можно почитать Кайта главы о таблицах и о индексах - возможно твою таблицу можно хранить как организованную по индексу (таблица = своему индексу). Правда Кайт только для 8-ой версии Оракла, так что еще лучше официальную документацию почитать.
Самый простой способ - спросить на sql.ru в форуме. Те зубры точно объяснят откуда растут ноги у таблицы и руки у ее создателя.

Еще мысля - рассмотреть возможно партицировать таблицу по полю DATETIME.

High_egor
Carpal Tunnel

Рег.: 27.12.2003
Сообщений: 4119
Рейтинг: 1233
  Re: [Oracle] Вопрос про организацию индекса [re: Yorik]
      24.12.2008 16:22
 

индекс нужно отделять для ускорения записи на диск (датафайлы таблицы и индекса на разных дисках)
таких таблиц несколько тысяч, в каждую из них раз в секунду пишутся данные, нагрузка довольно большая получается



Yorik

Рег.: 01.09.2005
Сообщений: 2476
Из: Москва
Рейтинг: 633
  Re: [Oracle] Вопрос про организацию индекса [re: High_egor]
      24.12.2008 21:07
1

я так понимаю, введение кластеризованного индекса в данном случае неухудшит скорость записи на диск (все равно данные будут писаться все и изредка скидваться на диск перестроенные страницы индекса), но при этом ускорит скорость выборки по ключевому значению.
Если добавить партиционирование по этому же ключу, все будет совсем в шоколаде.



High_egor
Carpal Tunnel

Рег.: 27.12.2003
Сообщений: 4119
Рейтинг: 1233
  Re: [Oracle] Вопрос про организацию индекса [re: Yorik]
      24.12.2008 21:15
 

Спасибо, попробуем :)



Fedos

Рег.: 19.11.2003
Сообщений: 5694
Из: помойки
Рейтинг: 1816
  Re: [Oracle] Вопрос про организацию индекса [re: High_egor]
      25.12.2008 02:16
-1

В ответ на:

INDX



какое-то не очень информативное название таблспейса
там точно ничего кроме этого индекса не лежит?



why so serious блядь?
High_egor
Carpal Tunnel

Рег.: 27.12.2003
Сообщений: 4119
Рейтинг: 1233
  Re: [Oracle] Вопрос про организацию индекса [re: Fedos]
      25.12.2008 15:02
 

Да, специально созданный таблспейс для индексов
лежит на отдельном диске



High_egor
Carpal Tunnel

Рег.: 27.12.2003
Сообщений: 4119
Рейтинг: 1233
  Re: [Oracle] Вопрос про организацию индекса [re: Yorik]
      25.12.2008 15:05
 

не совсем понял как к обычной таблице приделать кластеризованный индекс
ты имеешь ввиду создать кластерную таблицу со своим индексом?



Yorik

Рег.: 01.09.2005
Сообщений: 2476
Из: Москва
Рейтинг: 633
  Re: [Oracle] Вопрос про организацию индекса [re: High_egor]
      25.12.2008 16:04
 

ээ... нинай, как это называется в Oracle. видимо, так.

High_egor
Carpal Tunnel

Рег.: 27.12.2003
Сообщений: 4119
Рейтинг: 1233
  Re: [Oracle] Вопрос про организацию индекса [re: Fedos]
      25.12.2008 22:57
 

Нет, таблспейс создавался вручную
Oracle 10g



Fedos

Рег.: 19.11.2003
Сообщений: 5694
Из: помойки
Рейтинг: 1816
  Re: [Oracle] Вопрос про организацию индекса [re: High_egor]
      25.12.2008 23:42
2

В ответ на:

Да, специально созданный таблспейс для индексов



я понял, что для индексов, как раз и имел ввиду, мб, там индексы на другие таблицы еще лежат?
вообще, по-моему такой индекс должен меньше весить, чем сама таблица, даже если одинаковых значений DATETIME практически нет

попробуй посмотреть, сколько реально занимают экстенты под индекс и таблицу
что-то типа:
select sum(bytes) from dba_extents where owner = 'ARCH_SIGNALS' and segment_name = 'TAG_000001'
select sum(bytes) from dba_extents where owner = 'ARCH_SIGNALS' and segment_name = 'IDX_TAG_000001'
бежать может долговато, учитывая размеры датафайлов
Мб датайфайл под таблицу "раздутый" просто.

И есчо: DDL, который ты привел - это тулза какая-то выдает или как?
смущает опция LOCAL в скрипте для индекса.
мне казалось, что локальные индексы можно только для партициированных таблиц создавать




why so serious блядь?
Страницы: 0 | 20 | показать все | след. страница

Technical >> Development (Archive)

Дополнительная информация
0 зарегистрированных и 0 анонимных пользователей просматривают этот форум.

Модераторы:  DarkGray 

Печать темы
>>
Права
      Вы можете создавать новые темы
      Вы можете отвечать на сообщения
      HTML отключен
      UBBCode включен

Рейтинг:
Просмотров темы:

Переход в