|
Малоселективный индекс или верить IBExpert?
|
|||
---|---|---|---|
#18+
Имею: Yaffil 889 + Таблицу с 12.871 записью. Одно поле, COD, имеет все 3 состояния. кол-во записей по значениям поля COD: Код: plaintext
3 - 8.726 записей; 4 - 1.419 записей. Сделал 3 запроса типа: Код: plaintext
Execute time = 55ms - для COD=2; Execute time = 56ms - для COD=3; Execute time = 54ms - для COD=4; Сделан индекс по полю COD. Статистика этого индекса =0,333333.... Что тоже ожидаемо. Сделал 3 запроса типа: Код: plaintext
PLAN (TABLE1 INDEX (TABLE1_IDX4)) Execute time = 16ms - для COD=2; Execute time = 40ms - для COD=3; Execute time = 14ms - для COD=4; Везьде (IBASE.RU, книжки) рекомендуют НЕ создавать низкоселективные индексы. Возникает вопрос: - Верить ли значениям вычисляемым IBExpert, для конкретного случая, или придерживаться рекомендаций? Уж больно вкусная разница получается по IBExpert... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2006, 22:31 |
|
Малоселективный индекс или верить IBExpert?
|
|||
---|---|---|---|
#18+
Хотя... Вполне допускаю, что следует поискать другую комбинацию полей для создания индекса с большей селективностью. (Похоже опять забрался в дебри. ) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2006, 22:40 |
|
Малоселективный индекс или верить IBExpert?
|
|||
---|---|---|---|
#18+
Di_LIneИмею: Yaffil 889 + Таблицу с 12.871 записью. МозгИ ты всё больше людЯм имеешь, а не Yaffil Di_LIne Одно поле, COD, имеет все 3 состояния. А вот это надо запомнить. Что поля могут иметь состояния, причём не больше трёх Di_LIne кол-во записей по значениям поля COD: Код: plaintext
3 - 8.726 записей; 4 - 1.419 записей. Сделал 3 запроса типа: Код: plaintext
Execute time = 55ms - для COD=2; Execute time = 56ms - для COD=3; Execute time = 54ms - для COD=4; Сделан индекс по полю COD. Статистика этого индекса =0,333333.... Что тоже ожидаемо. Сделал 3 запроса типа: Код: plaintext
PLAN (TABLE1 INDEX (TABLE1_IDX4)) Execute time = 16ms - для COD=2; Execute time = 40ms - для COD=3; Execute time = 14ms - для COD=4; Ну. И посмотри - на том значении, которого большинство, уже на таком мизерном объёме почти что в лоб, что по лбу. А нарасти объём на порядок в той же пропорции и всё поймёшь. Именно на том, которого будет большинство. А для тех, которых будут единицы процентов, индекс будет просто ракетой. Так что рекомендации - они для головы, чтоб пользоваться, а не для рук, чтоб следовать. И вообще, я про "плохие" индексы даже на этом форуме уже мозоль на языке набил, рассказываючи как их готовят и едят. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2006, 23:33 |
|
Малоселективный индекс или верить IBExpert?
|
|||
---|---|---|---|
#18+
Amris Mirddin Di_LIneИмею: Yaffil 889 + Таблицу с 12.871 записью. МозгИ ты всё больше людЯм имеешь, а не Yaffil Ну... Что имею - на том и сижу... Amris Mirddin Di_LIne Одно поле, COD, имеет все 3 состояния. А вот это надо запомнить. Что поля могут иметь состояния, причём не больше трёх - Нех, нах и пох?... Amris MirddinНу. И посмотри - на том значении, которого большинство, уже на таком мизерном объёме почти что в лоб, что по лбу. А нарасти объём на порядок в той же пропорции и всё поймёшь. Именно на том, которого будет большинство. А для тех, которых будут единицы процентов, индекс будет просто ракетой. Так что рекомендации - они для головы, чтоб пользоваться, а не для рук, чтоб следовать. И вообще, я про "плохие" индексы даже на этом форуме уже мозоль на языке набил, рассказываючи как их готовят и едят. - Так я об том же мозгУ и морщил! Для меня самое важное COD=2! То есть, по этому значению = 90% выборок. А по COD=3 - 2-3 % ... Тут могут и подождать. По логике работы с Базой. И того на круг - получаем выигрыш. Сенкс, Amris! Побежал менять штан... индексишки! PS: Amris Mirddin... уже на таком мизерном объёме почти что в лоб, что по лбу. А нарасти объём на порядок в той же пропорции и всё поймёшь... - Чего-то страшно стало... Серьезно. Если почти из 13 тысяч выборка идет 14 милисекунд, то из 130.000 будет приблизительно 1,4 секунды. Долго... Железка-то не сама худая... P-IV 3.0 G/ 1 mb + 512 RAM... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2006, 00:43 |
|
Малоселективный индекс или верить IBExpert?
|
|||
---|---|---|---|
#18+
1. 14 милисекунд * 10 = 140 милисекунд или 0.14 секунд. 2. тебе действительно требуется выборка всех записей с кодом 2 из 130 000? передача данных займет больше времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2006, 06:57 |
|
Малоселективный индекс или верить IBExpert?
|
|||
---|---|---|---|
#18+
Ziaw1. 14 милисекунд * 10 = 140 милисекунд или 0.14 секунд. 2. тебе действительно требуется выборка всех записей с кодом 2 из 130 000? передача данных займет больше времени. Согласен. Математика верная. 1. 14 милисек * 10 = 0,14 * 6 перекрывающих друг друга запроса = 1,4 сек 2. Не-а! Столько даж мне мнОга. Но 100 записей - вынь и поклож. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2006, 09:23 |
|
|
start [/forum/topic.php?fid=42&msg=33578880&tid=1600003]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
15ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 19ms |
total: | 152ms |
0 / 0 |