|
|
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
afgm, не вижу большой разницы. Что в первом, что во втором случае результат непредсказуем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 23:04:41 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Симонов Денисне вижу большой разницы. Что в первом, что во втором случае результат непредсказуем. Согласен. Но не это беда, а многократный вызов тяжёлой процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 23:18:23 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
afgm, Если это требуется по смыслу то почему бы и нет. Соединение с огромных таблиц без индексов тоже плохо, но это не значит что это надо запретить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 08:32:51 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, Спасибо за запрос. То что надо! DragGET_SHIFT_PERSON всегда дает одну запись? Да, всегда одна запись. Участникам спасибо за дискуссию. Приоткрыли глаза! ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 09:03:29 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, я и не говорю про соединение больших таблиц. Речь о том, что, возможно (очень ИМХО), есть смысл "кешировать" результаты выборки процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 09:14:00 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
afgm, я тут недавно спрашивал у ДЕ по этой теме и он мне ответил что это если и будет то нескоро (а может быть и совсем). Вот для PSQL функций в FB3 можно указать, что она детерминированная и тогда она не будет перевычисляться при каждом вызове если параметры совпадают. Но функции возвращают только скалярные значения. Кстати с появлением PSQL функций надо бы подумать над тем чтобы запрещать создание индексов по выражениям для не детерминированных функций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 09:32:10 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Симонов Денися тут недавно спрашивал у ДЕ по этой теме и он мне ответил что это если и будет то нескоро кешировать результат ХП в случае тяжелого джойна (при многократном вызове оной ХП и ее независимости от других потоков) - можно и это будет делаться в ряде случаев. Но не более того. Симонов ДенисКстати с появлением PSQL функций надо бы подумать над тем чтобы запрещать создание индексов по выражениям для не детерминированных функций. никто не мешает тебе в 2.х создавать индексы по random или по current_timestamp или по gen_uuid. Не вижу разницы с недетерминированными PSQL-функциями. Если ССЗБ - ради бога, используй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 09:45:32 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
dimitrкешировать результат ХП в случае тяжелого джойна (при многократном вызове оной ХП и ее независимости от других потоков) - можно и это будет делаться в ряде случаев. Но не более того. Это хорошая новость. dimitrникто не мешает тебе в 2.х создавать индексы по random или по current_timestamp или по gen_uuid. Не вижу разницы с недетерминированными PSQL-функциями. Если ССЗБ - ради бога, используй. Это ничем плохим по мимо непредсказуемого результата выборки не может аукнуться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 10:09:33 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
dimitr, что скажешь насчёт Симонов Денис Код: sql 1. 2. 3. FB 2.5 Код: plaintext 1. FB 3.0 Alpha Код: plaintext 1. Однако Код: sql 1. 2. 3. В обоих версиях Код: plaintext 1. 2. 3. 4. 5. В трекер писать или и так исправиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 12:50:54 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
dimitrкешировать результат ХП в случае тяжелого джойна (при многократном вызове оной ХП и ее независимости от других потоков) - можно и это будет делаться в ряде случаев. Но не более того. Т.е. использование MERGE или HASH JOIN при слиянии потока из процедуры даже не рассматривается? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 13:00:55 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Симонов Денисчто скажешь насчёт не вижу тут ошибки. Нельзя во from-кляузе ссылаться на таблицу до ее объявления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 17:05:48 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТ.е. использование MERGE или HASH JOIN при слиянии потока из процедуры даже не рассматривается? оно уже сейчас работает, речь шла про многократное перечитывание потока (читай: nested loops) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 17:06:48 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
dimitrоно уже сейчас работает, речь шла про многократное перечитывание потока (читай: nested loops) По-моему, если поток достаточно мал для того, чтобы его закэшировать в памяти, это сводится к HASH JOIN. Если поток большой, закэшировать его удастся только во временный файл, а это MERGE JOIN. Какой ещё механизм для кэширования результата ХП можно придумать в дополнение к этим двум? То есть вопрос звучит так: при каких обстоятельствах есть смысл для оптимизатора рассматривать применение NL к ведомому потоку из ХП? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 17:18:10 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, во-первых, джойны по неравенству начисто отсекают merge/hash. Во-вторых, cartesian join и иже с ними (нет условия связи) тоже идут мимо merge/hash. В третьих, пока что merge/hash не поддерживаются для outer joins. Могу еще придумать, но лень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 23:04:51 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
dimitrпока что merge/hash не поддерживаются для outer joins Опаньки... А я-то был уверен, что в тройке это уже работает... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2013, 23:16:01 |
|
||
|
Оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Fly` , может мой ответ и не актуален, но не вижу смысла вообще использовать "LEFT JOIN" в оптимизации вашего запроса, можно ведь так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Подобной конструкцией, т.е. соединение результатов двух процедур при использовании в одной параметров другой, уже пользовалась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 15:49:34 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38423731&tid=1564231]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
203ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 535ms |

| 0 / 0 |
