|
|
|
План выполнения не учитывает UNIQUE CONSTRAINT.
|
|||
|---|---|---|---|
|
#18+
Проверялось для версии PostgreSQL 10.10. В таблице t по паре колонок (id, itemnumber) определил UNIQUE CONSTRAINT. Выполняю select * from t where t.Id = $1 and t.ItemNumber = $2; План выполнения показывает, что будет выбрано 6 записей. После ANALYZE VERBOSE t; На среде для разработки, где в таблице небольшое количество записей, просканировались все страницы таблицы и повторно построенный план выполнения дал ожидаемый результат: rows=1 На тестовой среде просканировались около 20% страниц таблицы и повторно построенный план выполнения дал оценку: rows=5 То есть оптимизатор никак не учитывает наличие UNIQUE CONSTRAINT на таблице. Но всё равно непонятно откуда взялась оценка в 5/6 записей. Гуру, подскажите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2019, 11:25 |
|
||
|
План выполнения не учитывает UNIQUE CONSTRAINT.
|
|||
|---|---|---|---|
|
#18+
Kr_Yury Проверялось для версии PostgreSQL 10.10. В таблице t по паре колонок (id, itemnumber) определил UNIQUE CONSTRAINT. Выполняю select * from t where t.Id = $1 and t.ItemNumber = $2; План выполнения показывает, что будет выбрано 6 записей. После ANALYZE VERBOSE t; На среде для разработки, где в таблице небольшое количество записей, просканировались все страницы таблицы и повторно построенный план выполнения дал ожидаемый результат: rows=1 На тестовой среде просканировались около 20% страниц таблицы и повторно построенный план выполнения дал оценку: rows=5 То есть оптимизатор никак не учитывает наличие UNIQUE CONSTRAINT на таблице. Но всё равно непонятно откуда взялась оценка в 5/6 записей. Гуру, подскажите 1)никак не учитывает наличие UNIQUE CONSTRAINT на таблице. да не учитывает а учитывает только статистику... 2)Но всё равно непонятно откуда взялась оценка в 5/6 записей. Из гистограмм распределения по полям id и ItemNumber... точнее смотрите в pg_stats view особенно на поля most_common_vals и most_common_freqs и n_distinct ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2019, 11:39 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39906933&tid=1994882]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 142ms |

| 0 / 0 |
