|
|
|
Примеры необходимости использования reverse index?
|
|||
|---|---|---|---|
|
#18+
Хотелось бы узнать мнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2003, 16:36 |
|
||
|
Примеры необходимости использования reverse index?
|
|||
|---|---|---|---|
|
#18+
ну дык, RTFM! в доке написано для чего он задумывался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2003, 16:51 |
|
||
|
Примеры необходимости использования reverse index?
|
|||
|---|---|---|---|
|
#18+
Новостной сайт, 10 последних новостей на главной странице. select /*+ ALL_ROWS INDEX_DESC(NEWS_TABLE NEWS_TABLE_INDEX1) */ * FROM NEWS_TABLE WHERE NEWSID>0 AND ROWNUM<=10 Чем не пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2003, 19:27 |
|
||
|
Примеры необходимости использования reverse index?
|
|||
|---|---|---|---|
|
#18+
Или это не реверс (лень глядеть в доки). Я имею ввидe индекс созданный как: CREATE INDEX MY_INDEX ON TABLE MY_TABLE ( MY_COLUMN DESC ); ?????? ( в свете этого при включенной стоимостной оптимизации можно выводить последние записи вообще без хинта ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2003, 19:31 |
|
||
|
Примеры необходимости использования reverse index?
|
|||
|---|---|---|---|
|
#18+
У нас использовали сложный индекс, где одно поле в середине было описано с DESC. Но после того, как эта конструкция стала валиться на 8.1.6, сие благополучно прибили и нашли workaround... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2003, 23:00 |
|
||
|
Примеры необходимости использования reverse index?
|
|||
|---|---|---|---|
|
#18+
"Или это не реверс (лень глядеть в доки). Я имею ввидe индекс созданный как: CREATE INDEX MY_INDEX ON TABLE MY_TABLE ( MY_COLUMN DESC " Да, ты прав - это не реверс. Как я не люблю, когда вместо того что-бы получать ответы на свой вопрос, ноборот обьяснять что это такое :( Значит так, reverse - это когда значение ключа записывается наоборот: Допустим в таблице emp есть столбец empno: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Команда создания реверсионного индекса будет такой create index emp_i1 on emp (empno) reverse; Код: plaintext 1. 2. 3. При этом значения столбца empno будут в самом индексе записаны в обратном порядке: Код: plaintext 1. 2. 3. 4. Вобщем я понял так, на практике это никто не использует. Всё понятно. Вычёркиваем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2003, 23:33 |
|
||
|
Примеры необходимости использования reverse index?
|
|||
|---|---|---|---|
|
#18+
В связи с этим хотелось бы задать попутный вопрос. Читала что reverse indexes в основном используются в Oracle Parallel Server. Там то с какой целью? Хотелось бы пример или объяснение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 09:39 |
|
||
|
Примеры необходимости использования reverse index?
|
|||
|---|---|---|---|
|
#18+
Насколько я помню, препод на курсах объяснял, что reverse используется для лучшего формирования индекса при вставке последовательных значений: типа 1, 2, 3, ..., 11, 12, ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 09:42 |
|
||
|
Примеры необходимости использования reverse index?
|
|||
|---|---|---|---|
|
#18+
Ну ладно, еще раз расскажу доку. Если ключи монотонно возрастают, то велика вероятность, что вставляемые строки попадут в один и тот же блок. Индекс с реверсированным ключом нужен для того, чтобы уменьшить борьбу за заголовок блока индекса при вставках, поскольку вероятность попадания ключей 321 и 421 в один и тот же блок меньше, чем ключей 123 и 124. Недостатком такого индекса является его использование только на равенство, диапазонные поиски просто не работают. Использовать или не использовать такой индекс - решать разработчикам и администратору вместе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 09:47 |
|
||
|
Примеры необходимости использования reverse index?
|
|||
|---|---|---|---|
|
#18+
У Тома Кайта, написано, что REVERSE INDEX используются в OPS с целью снятия конкуренции за последний листовой блок индекса, что существенно влияет на производительность, т.к. наполняет индекс более равномерно. Плохо то, что не работают запросы по диапазонам. Хотя в некоторых случаях по составным REVERSE индексам могут и работать (там же). Извините, что своими словами, лень книжку открывать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 09:48 |
|
||
|
Примеры необходимости использования reverse index?
|
|||
|---|---|---|---|
|
#18+
В книжках в общем-то написано для чего он может быть нужен... Механизм уже обьяснил softbuilder@inbox.ru, а смысл таков - устранить ожидания доступа к листьевому блоку индекса при одновременной вставке многими сессиями записей в узкий диапазон (т.е. в один блок). Устраняется это тем, что в результате перестановки байт в ключевом выражении записи индекса "псевдослучайно" попадают в разные блоки. Отсюда и упоминание по параллельный сервер (на нем обычно работает много сессий). Недостаток - не работает сканирование по диапазону rowid. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 09:49 |
|
||
|
Примеры необходимости использования reverse index?
|
|||
|---|---|---|---|
|
#18+
Ага, не успел. Искусственный Интеллект справился быстрее :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 09:49 |
|
||
|
Примеры необходимости использования reverse index?
|
|||
|---|---|---|---|
|
#18+
Насколько я помню из прошлого, что числа вообще говоря когда хранятся в памяти и вообще - записываются обратным способом, а точнее меняются младшие и старшие байты местами. Может как-то с этим связано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 09:49 |
|
||
|
Примеры необходимости использования reverse index?
|
|||
|---|---|---|---|
|
#18+
Нефига себе как быстро ответов набросали :) "чтобы уменьшить борьбу за заголовок блока индекса при вставках" Теперь смысл стал понятен. Но есть вопрос - а если INITRANS установить достаточно высоким для обычного монотонного индекса - я так понимаю, это может быть решением для уменьшения конкуренции? И если так то уж лучше иметь возможность поиска по диапазону, затрачивая больше на место для транзакционных слотов, чем reverse индекс с его ограничениями. Или я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 09:57 |
|
||
|
Примеры необходимости использования reverse index?
|
|||
|---|---|---|---|
|
#18+
Каждый слот в транзакционной таблице блока занимает 23 (или 24 - не помню точно) байта. Поэтому устанавливая initrans более, чем в 5, вы отъедаете заметную часть блока. Можно, конечно, использовать индексы в разделах с небольшим размером блока, но это в 9. Поэтому я и написал, что использование таких индексов решают разработчики вместе с администратором. Редкий, кстати, случай, когда нормальным разработчикам требуется консультация админа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 10:07 |
|
||
|
Примеры необходимости использования reverse index?
|
|||
|---|---|---|---|
|
#18+
to Al: Ну вобщем я понял - это на рассмотрение заинтересованных лиц. А если лично для меня - я бы всё-же использовал нереверсионный индекс. Мне всё-же часто бывает нужно строить запрос по диапазону. Размер блока 8Kb. Пусть 10 транзакций x 24 bytes = 240 bytes. Это нормально, мне кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2003, 10:14 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32164435&tid=1990439]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 467ms |

| 0 / 0 |
