Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / План выполнения не учитывает UNIQUE CONSTRAINT. / 2 сообщений из 2, страница 1 из 1
23.12.2019, 11:25
    #39906923
Kr_Yury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
План выполнения не учитывает UNIQUE CONSTRAINT.
Проверялось для версии 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 записей. Гуру, подскажите
...
Рейтинг: 0 / 0
23.12.2019, 11:39
    #39906933
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
План выполнения не учитывает UNIQUE CONSTRAINT.
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
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / План выполнения не учитывает UNIQUE CONSTRAINT. / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]