|
|
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Подскажите, плиз, синтаксис запроса до определенной строцки. Смысл таков: есть таблицы ТАВLE, с миллионами записей. Все записи имеют поля ИД и SYSDATE. Необходимо запрашивать каждый день данные о записах за сегодняшний день. Тоесть, дни за предыдущие периоды не нужны. Из-за этого отсутствует индекс по полю SYSDATE. Как сделать запрос, ( скорее всего, исползуя аналитические функции), чтоб не сканировать всю таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2018, 23:12 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
LemkolegПодскажите, плиз, синтаксис запроса до определенной строцки.Это синтаксис до 4й строцки, не включая её: Код: plsql 1. 2. 3. 4. Lemkolegза сегодняшний деньсегодня ночь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 01:02 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Lemkolegскорее всего, исползуя аналитические функции), чтоб не сканировать всю таблицу? Никакие аналитические функции тут не помогут - или индекс, или партицирование. А так - full scan. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 01:53 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Lemkoleg Из-за этого отсутствует индекс по полю SYSDATE Не до конца понял, из-за чего "этого" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 14:44 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
j2k, Из-за того, что запрашиваються даные только за текущий день. Какой смысл хранить индекс по всей таблице ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 15:51 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
А почему только индекс.... Какой смысл хранить данные, раз они не запрашиваются. Удалите лишние данные и проблемы со скоростью не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 15:55 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Lemkolegзапрашиваються даные только за текущий денькакой тогда смысл хранить таблицу по всем данным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 15:57 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
-2-, Как мне нравяться вопросы ( а особенно, ответы) не по существу. Потому-что, даные из других столбцов используються. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 16:01 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
SYLemkolegскорее всего, исползуя аналитические функции), чтоб не сканировать всю таблицу? Никакие аналитические функции тут не помогут - или индекс, или партицирование. А так - full scan. SY. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 16:03 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Lemkoleg-2-, Как мне нравяться вопросы ( а особенно, ответы) не по существу. Потому-что, даные из других столбцов используються. Как вариант - создай новую таблицу-клон с идентичными нужными полями и копируй/апдейть в ней данные из основной таблицы. Ну и ежедневно подчищай из нее, через джоб, старые, не актуальные записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 08:12 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
шК0ДЕРLemkoleg-2-, Как мне нравяться вопросы ( а особенно, ответы) не по существу. Потому-что, даные из других столбцов используються. Как вариант - создай новую таблицу-клон с идентичными нужными полями и копируй/апдейть в ней данные из основной таблицы. Ну и ежедневно подчищай из нее, через джоб, старые, не актуальные записи Такой вариант был, как запасной.Надеялся зделать это проще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 14:55 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Lemkoleg, не обижайся, но после заявлкния о том, что индекс не нужен, пошёл прямой троллинг. и это правильно - видимо, ты совсем не в курсе, как работает БД... и только SY, как всегда, по существу. даже скучно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 15:12 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
проходил мимо...Lemkoleg, не обижайся, но после заявлкния о том, что индекс не нужен, пошёл прямой троллинг. и это правильно - видимо, ты совсем не в курсе, как работает БД... и только SY, как всегда, по существу. даже скучно. Мне вот интерестно: с чего ты взял, что я не знаю, как работает БД? Я с уверенностью могу утверждать: мой вопрос никак не связан со знаниями об индексах и их предназначениями. Аналитические функции имеют возможность сканировать определенный корридор от выбраной строки. Вот я и предпеложил, что (возможно) этот корридор можно определить по условию. Тогда бы не пришлось хранить, оьслуживать и накапливать ненужный индекс. Это я тебе обьясняю, бо, видимо, ты не очень разобрался в чем дело ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 21:21 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Lemkoleg, как можно быть настолько неадекватным чтобы пытаться достать данные из "Аналитические функции имеют возможность сканировать определенный корридор от выбраной строки." без полного сканирования? тупость это диагноз. ты полный ноль с раздутым самомнением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 22:30 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
VintLemkoleg, как можно быть настолько неадекватным чтобы пытаться достать данные из "Аналитические функции имеют возможность сканировать определенный корридор от выбраной строки." без полного сканирования? тупость это диагноз. ты полный ноль с раздутым самомнением. Я, сейчас, поавильно понял: ты отрицаешь возможность (с помощью аналитических функций) выборку даных с определенным окном (например: 200 строк "до")? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 23:36 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
LemkolegЯ, сейчас, поавильно понял: ты отрицаешь возможность (с помощью аналитических функций) выборку даных с определенным окном (например: 200 строк "до")? Да пойми ты, аналитические ф-ции выполняются над resultset и в принципе не могут влиять на то сколько строк попало в resultset. Они не производят выборку даных с определенным окном а производят вычисления над уже выбранными данными разбивая resultset на партиции/она только для вычислений значений этих аналитических ф-ций. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 00:05 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Ничего, пройдет годик-другой и с такими понятиями о СУБД появится очередной Стебелек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 00:07 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Lemkoleg, Ты хотя бы дочитал до параграфа "План запроса"? Посмотри планы, выясни, на каком шаге table/index scan для получения данных, а на каком window для ограничения выборки из данных полученных на предыдущем шаге фильтра. Желательно до того, как ещё раз опозоришься демонстрацией своего невежества. И да, правильнее так Lemkolegс уверенностью могу утверждать Lemkolegя не знаю, как работает БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 09:43 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
LemkolegВсе записи имеют поля ИД и SYSDATE Искренне, от всей души, надеюсь, что sysdate это не название поля в таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 09:44 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Lemkoleg, У меня есть похожая табличка. И тоже иногда надо делать запросы по последним дням. Использую примерно такой запрос: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Если повезет с планом, то будет работать по индексу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 11:43 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Lemkoleg, В чем глубинный смысл этого запроса? Я на него смотрю и понять не могу ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 12:02 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Sir Если повезет insert into table_name{id, field_name) values(1e125, date '9999-01-01'); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 12:03 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, Перебираются записи в таблице по индексу в обратном порядке и находится первый id, у которого дата отличается от текущей. Если id заполняются в таблице строго по времени, то это будет первый id текущих суток. И его можно использовать для выборки записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 12:07 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevВ чем глубинный смысл этого запроса Магия данных для вырожденного случая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 12:08 |
|
||
|
Запрос до определенной строчки
|
|||
|---|---|---|---|
|
#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/search_topic.php?author=stannull45&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
144ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 697ms |
| total: | 985ms |

| 0 / 0 |
