Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk, Используйте процедуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 17:41 |
|
||
|
как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
|
|||
|---|---|---|---|
|
#18+
ora601, ещё один. как же вы настодоели расскажите, что мешает оптимайзеру сракуля поюзать индеск при сравнении столбца намберов с 1.5d как мы видим -- покрытие кейсов индусами отнюдь не всюду полно. даже у очень богатенького ларрия. чо уж говорить пра пеже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 18:02 |
|
||
|
как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
|
|||
|---|---|---|---|
|
#18+
Author the new oneMaxim Boguk, Используйте процедуру.вопрос не в том, как рыбу заворачивать -- это всем тут присутствующим известно. а в том, чтобы обучить оптимайзер решать эти кейсы самостийно. все , что нужно -- у него есть. надо только сесть и дописать ему кусок мозга. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 18:05 |
|
||
|
как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
|
|||
|---|---|---|---|
|
#18+
qwwqрасскажите, что мешает оптимайзеру сракуля поюзать индеск при сравнении столбца намберов с 1.5d некоммутативность. Приведение между number и double не для всех значений допустимо или обратимо, поэтому оптимизатор не должен додумывать, что неявно имел ввиду программист, написавший вместо целого строку или double или numeric, в зависимости от того, есть сейчас индекс по какой-либо части выражения или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 23:18 |
|
||
|
как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
|
|||
|---|---|---|---|
|
#18+
p2.qwwqрасскажите, что мешает оптимайзеру сракуля поюзать индеск при сравнении столбца намберов с 1.5d некоммутативность. Приведение между number и double не для всех значений допустимо или обратимо, поэтому оптимизатор не должен додумывать, что неявно имел ввиду программист, написавший вместо целого строку или double или numeric, в зависимости от того, есть сейчас индекс по какой-либо части выражения или нет. Сравнение INT с 1.5d никогда не может дать true, там и индекс то не нужен чтобы дать ответ что таких строк нет и быть не может. Тоже самое с range overflow и upcast to numeric (там тоже очевидно что ответ нет таких строк без всяких вообще проверок). -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 23:22 |
|
||
|
как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
|
|||
|---|---|---|---|
|
#18+
Maxim BogukСравнение INT с 1.5d никогда не может дать true, там и индекс то не нужен чтобы дать ответ что таких строк нет и быть не может. Тоже самое с range overflow и upcast to numeric (там тоже очевидно что ответ нет таких строк без всяких вообще проверок). Нет предела совершенству. Почему бы не реализовать разложение выражения на всевозможные комбинации (которых всегда бесконечность) и получение от этих частей обратных функций ради индекса. Предсказать, что приведение целых никогда не даст равенство дробному, а синус только в военное время достигает 2.0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 23:34 |
|
||
|
как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
|
|||
|---|---|---|---|
|
#18+
p2.Maxim BogukСравнение INT с 1.5d никогда не может дать true, там и индекс то не нужен чтобы дать ответ что таких строк нет и быть не может. Тоже самое с range overflow и upcast to numeric (там тоже очевидно что ответ нет таких строк без всяких вообще проверок). Нет предела совершенству. Почему бы не реализовать разложение выражения на всевозможные комбинации (которых всегда бесконечность) и получение от этих частей обратных функций ради индекса. Предсказать, что приведение целых никогда не даст равенство дробному, а синус только в военное время достигает 2.0. Есть пяток стандартных ситуация которые закрывают 99% реалистичных ситуаций если не 99.9%. -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 23:40 |
|
||
|
как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
|
|||
|---|---|---|---|
|
#18+
Maxim Bogukp2.пропущено... некоммутативность. Приведение между number и double не для всех значений допустимо или обратимо, поэтому оптимизатор не должен додумывать, что неявно имел ввиду программист, написавший вместо целого строку или double или numeric, в зависимости от того, есть сейчас индекс по какой-либо части выражения или нет. Сравнение INT с 1.5d никогда не может дать true, там и индекс то не нужен чтобы дать ответ что таких строк нет и быть не может. Тоже самое с range overflow и upcast to numeric (там тоже очевидно что ответ нет таких строк без всяких вообще проверок). ну в таком случае, если уж говорить честно, то (int) 1 не должен быть равен (double) 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 09:51 |
|
||
|
как сломать PG index scan по int полю или почему надо проверять диапазоны входных данных
|
|||
|---|---|---|---|
|
#18+
JonhsonMaxim Bogukпропущено... Сравнение INT с 1.5d никогда не может дать true, там и индекс то не нужен чтобы дать ответ что таких строк нет и быть не может. Тоже самое с range overflow и upcast to numeric (там тоже очевидно что ответ нет таких строк без всяких вообще проверок). ну в таком случае, если уж говорить честно, то (int) 1 не должен быть равен (double) 1.мухаха и где же вас, таких, понаделали ? если найдете два таких @integer и @double , что (@integer)::double = @double but (@double::integer)::double <> @double --дайте знать. будем тереть за коммутативность. а так --нет :] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 13:01 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39263276&tid=1997143]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
183ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 285ms |

| 0 / 0 |
