|
|
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
Есть большая таблица, порядка 300M записей. Нужно по этой таблице применить группировку и сортировку: Код: plsql 1. 2. 3. 4. В таблице есть индексы по client_id и moment. Но нет индексов по cost. При этом в попадающих под выборку записях более 90% записей нулевые (т.е. cost=0). Есть ли смысл добавлять в условие where выражение and cost!=0 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 16:19 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
Alibek B.и сортировку Имелось ввиду «и суммирование». ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 16:23 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
Alibek B.Есть ли смысл добавлять в условие where выражение and cost!=0 ?Логика запроса поменяется. Alibek B.В таблице есть индекс по client_id и moment. Но нет индексов по cost.Не думал об использовании индекса по дате? Ну и про between с датами уже много раз говорили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 16:27 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
Alibek B., есть разница Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 16:45 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
Stax, уважаемый, зачем "1=1" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 16:52 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
А я ничего не понял из комментариев: ТС говорит про cost, которое или 0, или другое число. При чем тут null? Да и moment - это поле date и по нему и так есть индекс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 16:56 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
--Eugene--Stax, уважаемый, зачем "1=1" ? Привык к продуктам Oracle (OEBS)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 16:57 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
Alibek B.В таблице есть индексы по client_id и moment. Но нет индексов по cost. При этом в попадающих под выборку записях более 90% записей нулевые (т.е. cost=0). Есть ли смысл добавлять в условие where выражение and cost!=0 ? А что будет с остальными 10% записями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 17:23 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
Собственно эти 10% и нужно просуммировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 17:43 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
Alibek B.Собственно эти 10% и нужно просуммировать.Зато по 90% сумма известна заранее. Быстрее всего будет взять общую сумму и вычесть сумму 90% нулей, выраженную константой 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 17:58 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
AmKadЛогика запроса поменяется. Результат не поменяется. AmKadНе думал об использовании индекса по дате? По полю moment есть индекс. AmKadНу и про between с датами уже много раз говорили. Что именно? Если то, что он включает в себя границы, я это знаю. Если есть какие-то другие нюансы, но в настоящем запроса moment >= :date1 and moment < :date2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 18:01 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
Staxесть разница В поле cost нет значений null. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 18:03 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
Alibek B., мы посовещались и решили, что ты попробуешь разные запросы, сравнишь скорости выполнения и напишешь свое экспертное мнение, как в итоге оказалось лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 18:08 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
Alibek B.Staxесть разница В поле cost нет значений null. с 0, тоже будет другой результат, если все cost для клиента 0 если неважно, можно добавить в условие where імхо сравнение с 0 все-таки дешевле суммирования с 0, но стоит ли усложнять логику запроса, хз ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 18:59 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
Staxс 0, тоже будет другой результат, если все cost для клиента 0 Про этот случай не подумал. Но у меня этот запрос не конечный, а промежуточный, далее мне нужно будет обработать ненулевые агрегаты. Так что для моего случая этот момент особой роли не играет. Staxсравнение с 0 все-таки дешевле суммирования с 0, но стоит ли усложнять логику запроса, хз Да, я именно это имел ввиду. После такой формулировки ответ напрашивается сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 20:37 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
Alibek B.Staxсравнение с 0 все-таки дешевле суммирования с 0, но стоит ли усложнять логику запроса, хзДа, я именно это имел ввиду. После такой формулировки ответ напрашивается сам.Напрашивается, что ты лох, верящий на слово добрым, но недалёким самаритянам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 20:41 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
Логика и РазумAlibek B., мы посовещались и решили, что ты попробуешь разные запросы, сравнишь скорости выполнения и напишешь свое экспертное мнение, как в итоге оказалось лучше. Допустим мне нужно проверить работоспособность амперметра. И я вначале было подумал спросить на форуме электриков, как его нужно подключить — последовательно или параллельно. Но потом логика и разум сказали мне, что лучше поэкспериментировать самому и потом отписаться о результатах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 20:41 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
Alibek B.Допустим мне нужно проверить работоспособность амперметра. И я вначале было подумал спросить на форуме электриков, как его нужно подключить — последовательно или параллельно. Но потом логика и разум сказали мне, что лучше поэкспериментировать самому и потом отписаться о результатах.Ты, дурочило, зря ёрничаешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 21:00 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
Alibek B.поэкспериментировать самому и потом отписаться о результатах.Это потом наступит, только когда из морга выпишут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 21:06 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
Ну так создай FBI: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. И измени свой select на: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 23:32 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
AmKadAlibek B.В таблице есть индекс по client_id и moment. Но нет индексов по cost. Не думал об использовании индекса по дате? Ну и про between с датами уже много раз говорили. что говорили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 23:48 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
tip78что говорили?О том, что в общем случае date - это дата со временем, и для фильтрации диапазона лучше использовать другое условие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 00:07 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
Упс - мой SELECT не вернет клиентoв c SUM(COST) = 0. Так что будет равнозначно только если у каждого клиента за любой интервал moment есть как минимум одна запись с cost != 0, что маловероятно. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 01:30 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
AmKadtip78что говорили?О том, что в общем случае date - это дата со временем, и для фильтрации диапазона лучше использовать другое условие. это элементарно лечится: Код: sql 1. а если там именно date, то и без минут будет пофиг ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 02:33 |
|
||
|
Есть ли смысл исключать из под суммирования нулевые поля?
|
|||
|---|---|---|---|
|
#18+
tip78а если там именно date, то и без минут будет пофиг Особенно когда получишь: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. cтрока != дата, да и в сентябре 30 дней. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 03:35 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39526040&tid=1885202]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
133ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 425ms |

| 0 / 0 |
