|
|
|
FB-3: 'Union' в extended-плане при наличии скалярного подзапроса. Зачем это слово ?
|
|||
|---|---|---|---|
|
#18+
hi all Запрос-1. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Запрос-2. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Если я правильно понимаю, 'Union' в extended-плане обозначает вовсе не объединение двух и более выборок, а просто наличие скалярного подзапроса. Тогда почему бы просто не написать: 'compute scalar' ? PS. LI-T3.0.0.30747 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2013, 18:37:59 |
|
||
|
FB-3: 'Union' в extended-плане при наличии скалярного подзапроса. Зачем это слово ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, скалярный подзапрос здесь это -> Singularity Check А вот Union фиг его знает, но если это то про что ты говоришь, то слово явно не удачное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2013, 18:43:23 |
|
||
|
FB-3: 'Union' в extended-плане при наличии скалярного подзапроса. Зачем это слово ?
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисА вот Union фиг его знает, но если это то про что ты говоришь, то слово явно не удачное.вот и я не понимаю. Если этот скалярный подзапрос вытащить наружу, то 'Union' пропадает: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2013, 18:51:19 |
|
||
|
FB-3: 'Union' в extended-плане при наличии скалярного подзапроса. Зачем это слово ?
|
|||
|---|---|---|---|
|
#18+
план честно показывает что есть. Юнион из одного потока - это внутренний хак (читай: оптимизация) для материализации подзапросов в select-листе внутри derived table, чтобы не перевыполнять эти запросы при каждом обращении к соответствующим derived field. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2013, 18:57:25 |
|
||
|
FB-3: 'Union' в extended-плане при наличии скалярного подзапроса. Зачем это слово ?
|
|||
|---|---|---|---|
|
#18+
dimitrплан честно показывает что есть. Юнион из одного потока - это внутренний хак (читай: оптимизация) для материализации подзапросов в select-листе внутри derived table, чтобы не перевыполнять эти запросы при каждом обращении к соответствующим derived field.Я правильно понимаю, что вот в этом примере: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2013, 19:10:44 |
|
||
|
FB-3: 'Union' в extended-плане при наличии скалярного подзапроса. Зачем это слово ?
|
|||
|---|---|---|---|
|
#18+
PS. И если на предыдущий мой вопрос ответ "да", то нельзя ли распространить эту же "идеологию" (закрепления результатов, полученных в DT) на те случаи, когда обращений к таблицам нету, а есть просто вызов "чего-то там недетерминированного": Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2013, 19:15:37 |
|
||
|
FB-3: 'Union' в extended-плане при наличии скалярного подзапроса. Зачем это слово ?
|
|||
|---|---|---|---|
|
#18+
Таблоидвычисли `y2` один раз на каждую строку, результат R сохрани в памяти, и сколько бы раз "снаружи" не было упомянуто имя `y2`, используй именно этот результат R".? верно Таблоиднельзя ли распространить эту же "идеологию" (закрепления результатов, полученных в DT) на те случаи, когда обращений к таблицам нету, а есть просто вызов "чего-то там недетерминированного" теоретически можно. Но для этого надо уметь находить недетерминированность в произвольно сложном выражении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2013, 19:18:26 |
|
||
|
FB-3: 'Union' в extended-плане при наличии скалярного подзапроса. Зачем это слово ?
|
|||
|---|---|---|---|
|
#18+
dimitrтеоретически можно. Но для этого надо уметь находить недетерминированность в произвольно сложном выражении. если есть хоть одна недетерминированная функция в выражении, то и всё выражение недетерминированное. Тут правда придётся всем встроенным функциям указать являются ли они детерминированными. Интересно сейчас эта информация есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2013, 19:23:18 |
|
||
|
FB-3: 'Union' в extended-плане при наличии скалярного подзапроса. Зачем это слово ?
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, нет. Как и в принципе нет информации о детерминированности селективных ХП, которые могут вызываться в выражении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2013, 19:27:12 |
|
||
|
FB-3: 'Union' в extended-плане при наличии скалярного подзапроса. Зачем это слово ?
|
|||
|---|---|---|---|
|
#18+
dimitr, хотя пока процедуры без подзапросов нельзя вызывать, так что они пофиг :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2013, 19:28:20 |
|
||
|
FB-3: 'Union' в extended-плане при наличии скалярного подзапроса. Зачем это слово ?
|
|||
|---|---|---|---|
|
#18+
dimitrdimitr, хотя пока процедуры без подзапросов нельзя вызывать, так что они пофиг :-) А что это планируется изменить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2013, 19:30:31 |
|
||
|
FB-3: 'Union' в extended-плане при наличии скалярного подзапроса. Зачем это слово ?
|
|||
|---|---|---|---|
|
#18+
очень надеюсь, что нет :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2013, 19:37:05 |
|
||
|
FB-3: 'Union' в extended-плане при наличии скалярного подзапроса. Зачем это слово ?
|
|||
|---|---|---|---|
|
#18+
dimitrТаблоиднельзя ли распространить эту же "идеологию" (закрепления результатов, полученных в DT) на те случаи, когда обращений к таблицам нету, а есть просто вызов "чего-то там недетерминированного"теоретически можно. Но для этого надо уметь находить недетерминированность в произвольно сложном выражении.А мну кажется, что достаточно делать материализацию там, где о ней явно просят. Почти вопят. Пример-1 . Выдаёт в столбе `rdup` явно не то, о чём многие могли бы подумать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Пример-2. Выдаёт уже нормальное значение (удвоенное `r`): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Почему такие танцы с бубном нужны (я про две сортировки), чтобы не дать rand-значению выскочить наверх ? PS. Дайте уже хинт типа Код: sql 1. - ы ? Изабэлло в GTT'шки запихивать (я про промежуточные результаты для сложносочинённых запросов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2013, 00:42:00 |
|
||
|
FB-3: 'Union' в extended-плане при наличии скалярного подзапроса. Зачем это слово ?
|
|||
|---|---|---|---|
|
#18+
dimitrТаблоидвычисли `y2` один раз на каждую строку, результат R сохрани в памяти, и сколько бы раз "снаружи" не было упомянуто имя `y2`, используй именно этот результат R".? верноТут "усиленная" формулировка родилась. Вычисли для каждой строки derived-таблицы все поля (а не только те, по которым идёт обращение к таблицам!) , сохрани их значения, и сколько бы раз снаружи они не упоминались, используй сохраненные значения. В примере ниже обращение к таблице идёт только для поля `r1`, а остальные два поля - обычные рандомы. Но их значения, как выясняется, также сохраняются, как и `r1`: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2013, 09:44:42 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38482351&tid=1564102]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
202ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 182ms |
| total: | 450ms |

| 0 / 0 |
