|
|
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
SirLeonid Kudryavtsev, Перебираются записи в таблице по индексу в обратном порядке и находится первый id, у которого дата отличается от текущей. Если id заполняются в таблице строго по времени, то это будет первый id текущих суток. И его можно использовать для выборки записей. Спасибо. Слона то я и не заметил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 12:12 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
SirLeonid Kudryavtsev, Перебираются записи в таблице по индексу в обратном порядке и находится первый id, у которого дата отличается от текущей. Если id заполняются в таблице строго по времени, то это будет первый id текущих суток. И его можно использовать для выборки записей. Это то, чего я и пытаюсь добиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 15:25 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Сначала ты утверждала что индекс тебе не нужен: Lemkolegj2k, Из-за того, что запрашиваються даные только за текущий день. Какой смысл хранить индекс по всей таблице Теперь говоришь что нужен: LemkolegSir Перебираются записи в таблице по индексу Это то, чего я и пытаюсь добиться На каком ты месяце? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 16:29 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
XMLer, ну не совсем так XMLerутверждала что индекс тебе не нужен: в первом посте было уточнение Lemkolegотсутствует индекс по полю SYSDATE И если есть графеновая гарантия, что нарастание индексированного суррогатного PK и даты в поле sysdate эквивалентно и однонаправленно, то вариант с магией данных даже прокатит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 16:40 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
SirЕсли повезет с планом, то будет работать по индексу. Бред. Начнем с того что TRUNC(SYSDATE) > TRUNC(field_date) в принципе ничего не вернет. Так-что TRUNC(field_date) = TRUNC(SYSDATE) а лучше field_date >= TRUNC(SYSDATE). Едем дальше. Индекса по field_date нет. Допустим есть индекс по id,field_date. Тогда, посколько order by DESC , будет не INDEX FULL SCAN с STOPKEY а INDEX FULL SCAN и только затем сортировка результата INDEX FULL SCAN с STOPKEY. Но это не суть. Суть в том что WHERE field_date >= TRUNC(SYSDATE) AND ROWNUM = 1 вернет (исходя из id увеличивается при каждой последующей вставке) id последней строки на момент select'a. А посему, id > ... ничего не вернет a id >= ... вернет последнюю строку на момент select'a. Код: 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. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 16:51 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
env, я не про вариант с магией данных а про смену настроения ТС, сначала она хотела без индекса а после благодарила за индекс. И таки да, индекс д.б. на id и дату. И магия данных тоже обязательное условие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 17:02 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Соломон, ты фильтр не в ту сторону развернул. trunc(field_date) < trunc(sysdate) при переборе сверху вниз как раз вернёт последнюю запись предыдущего дня. XMLerиндекс д.б. на id и дату. Код: 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. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. Индекс на id, dt без магии данных не нужен. Достаточно id. Велосипед из костылей вполне способен ехать. Но корректный результат будет только за счёт магии данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 17:25 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
env, чесно говоря не совсем понимаю смысл Код: plsql 1. 2. просмотрит всю таблицу, да еще и через индекс? или я неправ? чем метотод c id луче за select * from tt where DT>=TRUNC(SYSDATE)? ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 18:53 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
env, если Код: plsql 1. то из твоего плана пропадет строка 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 18:58 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
SirLeonid Kudryavtsev, Перебираются записи в таблице по индексу в обратном порядке и находится первый id, у которого дата отличается от текущей. Если id заполняются в таблице строго по времени, то это будет первый id текущих суток. И его можно использовать для выборки записей. Именно этого я и пытаюсь добиться. Но, приходиться, либо спорить с самоуверенными, либо обьяснять непонятливым ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 22:59 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Lemkoleg, Да тюв поле dateadding ровняеться значению sysdate- дате добавления. Обратная логика - всеоля, до определенного ИД - есть поля, добавленые заопределенный период. Чего тупим, господа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 23:03 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
LemkolegLemkoleg, Да тюв поле dateadding ровняеться значению sysdate- дате добавления. Обратная логика - всеоля, до определенного ИД - есть поля, добавленые заопределенный период. Чего тупим, господа? Постараюсь написать без пропусков и замены букв ( не давая пищу для травли идиотам). Даные в поле dateadding ровняеться значению sysdate - дате добавления. Обратная логика - все поля, до определенного ИД - есть поля, добавленые за определенный период. Чего тупим, господа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 23:06 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
LemkolegровняетьсяРусский язык в твоей стране не преподают? Тогда укажи в профиле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 23:13 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
пища идиотаLemkolegровняетьсяРусский язык в твоей стране не преподают? Тогда укажи в профиле. Заечем? Тебе от этого легче? Тогда, этот сайт - не твоя стихия... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 23:59 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
XMLerСначала ты утверждала что индекс тебе не нужен: Lemkolegj2k, Из-за того, что запрашиваються даные только за текущий день. Какой смысл хранить индекс по всей таблице Теперь говоришь что нужен: Lemkolegпропущено... Это то, чего я и пытаюсь добиться На каком ты месяце? Тебе кто "утверждала"?. Ты на..... чем?....вобще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 00:08 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
LemkolegКак сделать запрос, чтоб не сканировать всю таблицу? Если есть возможность добавить столбец или есть подходящий по смыслу, посмотрите на решение описаное Кайтом в Expert Oracle Database Architecture chapter 1 или воттутавот . Идея в создании функционального индекса в котором все "ненужные" записи будут представлены наллами. Индекс в таком случае получается близким к минимально возможному - исчезает ограничение "Из-за этого [отсутствует]". Новые записи добавляются с "нужным" значением, по мере обработки или устаревания значение должно быть установлено в "ненужное" либо самим приложением, либо джобом, соответственно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 00:58 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
env Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 01:31 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
just4fun, как дополнительный вариант Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 02:06 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Не уверен, что WHERE id > будет работать быстрее, чем WHERE SYSDATE = ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 02:52 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
LemkolegLemkoleg, Да тюв поле dateadding ровняеться значению sysdate- дате добавления. Обратная логика - всеоля, до определенного ИД - есть поля, добавленые заопределенный период. Чего тупим, господа? для Вашего случая ключевым есть index_desc для ід 21192612 в плане не должно быть SORT ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 09:50 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
982183Не уверен, что WHERE id > будет работать быстрее, чем WHERE SYSDATE = если записей за текущую дату относительно мало, и пойдет по индексу c обратной стороны (DESCENDING) то будет ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 09:54 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Stax, В этом и есть задумка. Идея оказалась нетакая уж и бредовая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2018, 12:47 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
LemkolegStax, В этом и есть задумка. Идея оказалась нетакая уж и бредовая імхо, совсем не бредовая, но надо акуратно выверить план если данные напр за 10лет, то выиграш будет в сотни раз странно токо что нет индекса по дате (без времени) или "архивных" таблиц ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2018, 13:58 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39602056&tid=1884406]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 303ms |

| 0 / 0 |
