|
|
|
Задача с пересекающимися диапазонами
|
|||
|---|---|---|---|
|
#18+
andrey_anonymoussoftwarerиз вариантов Код: plsql 1. 2. 3. весьма трудно назвать хоть какой-либо плюс третьего. Один плюсик таки есть: его можно переписать как Код: plsql 1. что временами слегка повышает читабельность. В то же время вариант 1 в запросе сразу выдает "нуба", который вскоре придет с просьбой "ускорить запрос". Не на 100%, но на 98 - точно :) А будьте любезны, объясните, пожалуйста, почему? Ибо я из этих нубов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2018, 19:00 |
|
||
|
Задача с пересекающимися диапазонами
|
|||
|---|---|---|---|
|
#18+
А почемуА будьте любезны, объясните, пожалуйста, почему? Ибо я из этих нубов. Думаю, Андрей имел в виду, что первый вариант, в отличие от второго и третьего, не сможет воспользоваться индексом по полю dt. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2018, 19:07 |
|
||
|
Задача с пересекающимися диапазонами
|
|||
|---|---|---|---|
|
#18+
softwarerА почемуА будьте любезны, объясните, пожалуйста, почему? Ибо я из этих нубов. Думаю, Андрей имел в виду, что первый вариант, в отличие от второго и третьего, не сможет воспользоваться индексом по полю dt.стоит еще учитывать, что иногда имеет смысл создавать индекс на trunc даты до часа или суток, т.к. это позволяет искать по обоим вариантам, как по trunc(поле_даты) between ..., так и по "поле_даты between :1 and :2", ну и иногда уменьшить размер индекса Код: 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2018, 19:26 |
|
||
|
Задача с пересекающимися диапазонами
|
|||
|---|---|---|---|
|
#18+
Staxя 7+ лет не могу понять тайный смысл cnt not between 1 and 4Просто чтобы убрать непоказательный шум именно на том "случайном" наборе данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2018, 08:05 |
|
||
|
Задача с пересекающимися диапазонами
|
|||
|---|---|---|---|
|
#18+
Elic, ясно, спасибо ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2018, 10:03 |
|
||
|
Задача с пересекающимися диапазонами
|
|||
|---|---|---|---|
|
#18+
softwarerА почемуА будьте любезны, объясните, пожалуйста, почему? Ибо я из этих нубов. Думаю, Андрей имел в виду, что первый вариант, в отличие от второго и третьего, не сможет воспользоваться индексом по полю dt. То есть если индекса нет, то все 3 варианта будут выполняться одно время? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 13:01 |
|
||
|
Задача с пересекающимися диапазонами
|
|||
|---|---|---|---|
|
#18+
ElicVintесли звонки начинаются или заканчиваются в один момент времениtimestamp-ы не на винде одинаковыми не бывают.Спорное утверждение. Просто на практике встречались дубли, база под Linux. Возможно, из за RAC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2018, 13:04 |
|
||
|
Задача с пересекающимися диапазонами
|
|||
|---|---|---|---|
|
#18+
А почемуТо есть если индекса нет, то все 3 варианта будут выполняться одно время? Спасибо. Быстрее будет, если union all заменить на join. Экономится один скан таблицы. Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2018, 13:41 |
|
||
|
Задача с пересекающимися диапазонами
|
|||
|---|---|---|---|
|
#18+
Alexander_TtlElicпропущено... timestamp-ы не на винде одинаковыми не бывают.Спорное утверждение. Просто на практике встречались дубли, база под Linux. Возможно, из за RAC. надо еще понять (не всем дано) что Elic имел ввиду в контексте авторесли звонки начинаются или заканчиваются в один момент времени два звонка могут начатся и закончится в один момент времени, зависит от оборудования напр две независимые стойки, почему б им (завонкам) не начатся в один момент времени, тем более закочится да и банальный systimestamp (не помню скоко там точнось, допустим 6 знаков) если процессор намного быстрее 1000000 то почему б и не получить одинаковые значения если в ф-ции (ос) стоит задержка 0.000001 то откуда уверенность что в винде ее нет опять же в могопроцессорных системах, неужели на разных процессорах нельзя получить одинаковые timestamp ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2018, 13:55 |
|
||
|
Задача с пересекающимися диапазонами
|
|||
|---|---|---|---|
|
#18+
Stax, про таймстемпы на винде просто лень искать тему. на юниксах каждый вызов таймстемпа точно занимает какое то время, там кажется 8 символов после секунд. у винды точно 6 символов после секунд не всегда хватает чтобы отловить разницу. насчет того что пересекаются или нет уже не важно. главное сама идея...) я ее пол дня вспоминал. точно видел не единожды.... но всегда когда надо нет под рукой) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2018, 23:45 |
|
||
|
Задача с пересекающимися диапазонами
|
|||
|---|---|---|---|
|
#18+
Vintу винды точно 6 символов после секунд не всегда хватает чтобы отловить разницу.На винде у TS всего 3 знака. Код: plsql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2018, 09:00 |
|
||
|
Задача с пересекающимися диапазонами
|
|||
|---|---|---|---|
|
#18+
Vint, Спасибо, нашел https://books.google.com.ua/books?id=NkulDQAAQBAJ&pg=PA251&lpg=PA251&dq=linux timestamp точность&source=bl&ots=QHR35OdLoP&sig=X2k_m9U-VRbvXlNYMSLfMZOlzgg&hl=uk&sa=X&ved=0ahUKEwiEtounys_ZAhUQZlAKHbLyDykQ6AEIhQEwCQ#v=onepage&q=linux timestamp точность&f=false в оракле сколько знаков? вроде 6, хотя в маске 9 (мож на будущее) 1) если процессоры сильно быстрые, то могут получить время с разницей в 7-м знаке, оракля обрежет до 6-ти получим одинаковые 2) два быстрые процессоры одновременно обратились за временем к ос, они ж получат одинаковое время? 3) в телефонии (с чего все и началось) запросто можно получить одинаковое время начала/окончания звонка хоть там и 20 знаков после зы для меня ето не принципиально, так для общего развития ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2018, 10:26 |
|
||
|
Задача с пересекающимися диапазонами
|
|||
|---|---|---|---|
|
#18+
ElicНа винде у TS всего 3 знака.Не знаю, что именно пользует оракл, но на винде стандартный системный таймер имеет точность от 10 до 16 миллисекунд. Точный таймер 20 микросекунд. Если первое, то честных и 3х знаков нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2018, 11:25 |
|
||
|
Задача с пересекающимися диапазонами
|
|||
|---|---|---|---|
|
#18+
винапи.Не знаю, что именно пользует оракл, но на винде стандартный системный таймер имеет точность от 10 до 16 миллисекунд. Точный таймер 20 микросекунд. Если первое, то честных и 3х знаков нет. TIMESTAMP Precision (Doc ID 2299085.1) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2018, 12:34 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39608087&tid=1884342]: |
0ms |
get settings: |
10ms |
get forum list: |
29ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
72ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 259ms |
| total: | 437ms |

| 0 / 0 |
