Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
разный результат EXPLAIN
|
|||
|---|---|---|---|
|
#18+
Чем может быть вызвана такая разница ? Значение id_group = 10688 есть в таблице, а значения id_group = 1234 нет. Код: plaintext 1. 2. Код: plaintext 1. 2. 3. Индекс создан командой: Код: plaintext postgres (PostgreSQL) 7.3.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2005, 10:50 |
|
||
|
разный результат EXPLAIN
|
|||
|---|---|---|---|
|
#18+
Разными предполагаемыми кол-вами строк, удовлетворяющими условиям id_group=10688 и id_group=1234. rows=389 rows=91 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2005, 12:32 |
|
||
|
разный результат EXPLAIN
|
|||
|---|---|---|---|
|
#18+
В таблице около 2-х тысячи записей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2005, 14:01 |
|
||
|
разный результат EXPLAIN
|
|||
|---|---|---|---|
|
#18+
дык эти значения на статистике таблицы основанно.. а она приблизительная. vacuum analuze сделай и посмотри что в експлейне поменялось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2005, 14:42 |
|
||
|
разный результат EXPLAIN
|
|||
|---|---|---|---|
|
#18+
wbearдык эти значения на статистике таблицы основанно.. а она приблизительная. vacuum analuze сделай и посмотри что в експлейне поменялось Или explain analyze ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2005, 15:38 |
|
||
|
разный результат EXPLAIN
|
|||
|---|---|---|---|
|
#18+
В таблице чуть больше 3000 записей. Поле id_group не уникальное. Мне не понятно почему в первом случае не используется индекс, а во втором используется ? Как оптимизатор может знать изначально есть такое значение в таблице или нет ? VACUUM ANALYZE gr_graphic; - ни чего принципиально не меняет. EXPLAIN ANALYZE возвращает ожидаемые результаты: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2005, 10:51 |
|
||
|
разный результат EXPLAIN
|
|||
|---|---|---|---|
|
#18+
ну видимо планер подумал(посмотрел в статистику таблици и решил) что пробежать таблицу целиком и найти id_group=10688 быстрее чем при этом еще и индекс открывать... такое бывает когда id_group=10688 в таблице встречается достаточно часто в твоем случае планер по статистике определили что в таблице ~10%(365) записей с id_group=10688 в реале получилос чуть поменьше (343) . Seq Scan on gr_graphic (cost=0.00..519.30 rows=365 width=1149) (actual time=0.23..105.67 rows=343 loops=1) во втором запросе предположил что 94 т.е ~ 3% поэтому и подумал что быстрее использовать индекс . Index Scan using gr_graphic_1 on gr_graphic (cost=0.00..345.40 rows=94 width=1149) (actual time=0.40..0.40 rows=0 loops=1) проведи експеремент... выключи seqscan, и опять запусти свои два експлейна не думаю что первый станет быстрее отробатывать хотя начнет использовать индекс. и експеремент номер 2 (посмотри со включенным и выключенным seqscan) удали из таблицы все строки с id_group=10688 кроме одной, далее вакку аналузе,реиндекс и опять експлейны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2005, 11:08 |
|
||
|
разный результат EXPLAIN
|
|||
|---|---|---|---|
|
#18+
Slava_P Мне не понятно почему в первом случае не используется индекс, а во втором используется ? Как оптимизатор может знать изначально есть такое значение в таблице или нет ? 1.Индекс используется, если их таблицы выбирается менее 10% записей, иначе полное сканирование выгоднее. 2.Для этой оценки используется статистика. Поэтому собсно и есть explain, который показывает, что думает оптимизатор, и explain analyze, который показывает, что получилось в результате ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2005, 13:28 |
|
||
|
разный результат EXPLAIN
|
|||
|---|---|---|---|
|
#18+
Slava_PКак оптимизатор может знать изначально есть такое значение в таблице или нет ?В процессе сбора стастики VACUUM ANALYZE он может узнать эту информацию. mwolf1.Индекс используется, если их таблицы выбирается менее 10% записей, иначе полное сканирование выгоднее.Точное число (10%) наверное зависит от настроек планировщика и, возможно, других параметров (средней длины строки таблицы и строки индекса,..). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2005, 14:26 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=333&tid=2006905]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 333ms |

| 0 / 0 |
