|
|
|
Unique constraint + index
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров , понимаю, что хочу невозможного, потому перестаю хотеть ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2016, 09:49:57 |
|
||
|
Unique constraint + index
|
|||
|---|---|---|---|
|
#18+
Апну--Eugene--простите, а чем именно не устраивает такой индекс, если id-таки уникально? или вас не устраивает единовременное существование обоих индексов? Не устраивает тем, что составной индекс строится по полям where и select, т.о. при запросе к таблице не обращаемся, все берем из индекса, что ощутимо ускоряет запрос. Вячеслав Любомудров , да. docs.oracle.comOracle performs a unique scan if a statement contains a UNIQUE or a PRIMARY KEY constraint that guarantees that only a single row is accessed. Замечательно и вроде как известно, но ок: 1. делаем табличку Код: plsql 1. 2. 3. 2. делаем нужный составной индекс Код: plsql 1. 3. создаем констрейнт Код: plsql 1. (можно уник., результат тот же) Условие изложенное в доке выполнено? Вроде да. Но Код: plsql 1. дает range scan :( Только что там не сказано, что он обязательно выберет unique scan, но все равно досадно ) секунду, но если у вас id уникально, то объём промолоченной инфы должен быть одинаков что для range что для uniq scan Вы не могли бы статистику аутотрейса показать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2016, 10:08:48 |
|
||
|
Unique constraint + index
|
|||
|---|---|---|---|
|
#18+
Jonhson, полагаю, что range scan не остановится на первой попавшейся листоноде индекса, что может привести к дополнительному чтению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2016, 10:14:25 |
|
||
|
Unique constraint + index
|
|||
|---|---|---|---|
|
#18+
нэ нэгороJonhson, полагаю, что range scan не остановится на первой попавшейся листоноде индекса, что может привести к дополнительному чтению. с учётом того, что id 1-й в индексе, то максимум просканит на 1 вперёд, дальше просто нет смысла. И вот что-бы убедиться можно запустить autotrace и посмотреть стату на варианте с unique index и без такового ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2016, 10:29:05 |
|
||
|
Unique constraint + index
|
|||
|---|---|---|---|
|
#18+
АпнуСейчас в плане по рейнджскану выдает кост в сотни и выборку кучи байт/строк (статистика собрана).Ну продемонстрируй, не стесняйся. В нормальных условиях разница между range & unique будет в том, что в последнем случае будет использовано чуть меньше латчей, но заметно это будет разве что если у тебя система с 100500 одновременных сессий. При корректной статистике кардинальности будут идентичными. Оракл увидит что число distinct values первого столбца равно числу строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 13:35:28 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39265464&tid=1887991]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
53ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 325ms |

| 0 / 0 |
