powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / СУБД с возможностью указать сколько секунд делать выборку
25 сообщений из 36, страница 1 из 2
СУБД с возможностью указать сколько секунд делать выборку
    #39068509
Searcher2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Месяц назад видел такую субд где пишеш
SELECT *
FROM balala
WHERE blalala
а потом чтото типа
DURING 2 SECONDS

И возвращаються все строки, которые удалось выбрать з окромного датасета на протяжении єтих 2 секунд

Как называется, уже полчаса гуглю) Спасибо!
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39068651
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Searcher2,

ну в virtuoso например такое есть, синтаксис другой конечно...
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39068848
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Searcher2И возвращаються все строки, которые удалось выбрать з окромного датасета на протяжении єтих 2 секунд
сервер скорее будет поддерживать ограничение времени выполнения запроса, чем время получения выборки.
Потому что методов выполнения запроса много разных, и, например, бывают такие, которые не выдают ни одной записи на протяжении N секунд, а потом могут быстро выдавать весь результат.
Соответственно, в вашем случае, при определенной сложности запроса, вы можете вообще не получить ни одной записи.

Такая фича используется разве что в realtime системах, когда результат надо получить за время N, и не больше, иначе результат уже не нужен.
Кстати, кроме самой СУБД такую фичу может поддерживать какая-нибудь промежуточная прослойка (если СУБД умеет "отменять" выполнение запроса на любом этапе, а прослойка умеет командовать отмену запроса по истечении таймаута).

Что-то такое вроде было в postgresql, но не уверен, что оно есть в "общей" версии. Обычно у разных СУБД есть всякие лимиты времени активности коннекта, и разве что логирование запросов, которые выполняются дольше N секунд.

p.s. искал в гугле, может не так, ничего не нашел.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39069178
Фотография roden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Searcher2...
Как называется ...
Все-таки ... скорее всего это реализация в прослойке или приложении
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39071790
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Searcher2И возвращаються все строки, которые удалось выбрать з окромного датасета на протяжении єтих 2 секунд

Как называется, уже полчаса гуглю) Спасибо!

Если в оракле, можете делать ограничение по количеству выбираемых записей.

Код: sql
1.
select * from tablename  where rownum <=100



Время можете подобрать эсперементальным путем.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39072004
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergueiЕсли в оракле, можете делать ограничение по количеству выбираемых записей.
это не то, и есть практически в любой СУБД

select first n /skip m...
select top n ...
select ... order by ... rows n ...
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39072211
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Searcher2Месяц назад видел такую субд где пишеш
SELECT *
FROM balala
WHERE blalala
а потом чтото типа
DURING 2 SECONDS

И возвращаються все строки, которые удалось выбрать з окромного датасета на протяжении єтих 2 секунд

Как называется, уже полчаса гуглю) Спасибо!

На месте архитектора
я бы такой функционал в продуктив не пустил бы.

Потому, что подобного рода фичи создают
непредсказуемые логические ошибки
в технологических процессах.
Боростья с которыми гораздо дороже , чем
сайзить и тюнить обычную БД.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39072218
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не пробовал, но вариант в оракле:
1. делаешь пайплан-функцию с одним из вх. параметров время выполнения
2. на входе засекаешь время начала работы с выходом из ф-ции по указанному таймауту
3. делаешь селект к этой функции
4. если все нормуль, радуешься )
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39072318
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРНа месте архитектора я бы такой функционал в продуктив не пустил бы.
почитайте про "системы реального времени". Есть "мягкие" и "жесткие". Для "жестких"
" Ситуация, в которой обработка событий происходит за время, большее предусмотренного, в системе жёсткого реального времени считается фатальной ошибкой. "

Допустим, приложению нужен ответ на запрос в течение 1 секунды. Через 2 секунды результат запроса уже нафиг не будет нужен. Поэтому через 2 секунды запрос уже можно отрубать. А если такого ограничения нет, то запрос может выполняться и 3 и более секунд, что приведет к общему уменьшению отклика системы, что сделает неактуальным и ДРУГИЕ запросы.
Так что при наличии данного требования (ограничения запросов по времени), и его отсутствия в реализации, система при определенной нагрузке просто встанет раком.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39072402
Зимаргл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdvДохтаРНа месте архитектора я бы такой функционал в продуктив не пустил бы.
почитайте про "системы реального времени". Есть "мягкие" и "жесткие". Для "жестких"
" Ситуация, в которой обработка событий происходит за время, большее предусмотренного, в системе жёсткого реального времени считается фатальной ошибкой. "

Допустим, приложению нужен ответ на запрос в течение 1 секунды. Через 2 секунды результат запроса уже нафиг не будет нужен. Поэтому через 2 секунды запрос уже можно отрубать. А если такого ограничения нет, то запрос может выполняться и 3 и более секунд, что приведет к общему уменьшению отклика системы, что сделает неактуальным и ДРУГИЕ запросы.
Так что при наличии данного требования (ограничения запросов по времени), и его отсутствия в реализации, система при определенной нагрузке просто встанет раком.
Слышал звон да не знаю где он. Классический случай.
В РТ лонг операции дробятся и выполняются отдельной подпрограммой, не влияющей на отклик системы.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39072506
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗимарглСлышал звон да не знаю где он. Классический случай.
идите в сад, товарищ. вы, очевидно, не были на докладе Бартунова про real-time запросы к Postgresql в хрен знает каком затертом году.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39072507
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зимаргл,

и вообще - дробятся, не дробятся... выполнить запрос надо за 0.1 сек. а он выполняется за 0.2 сек. Что будете делать?
Казалось бы, в предыдущем сообщении я внятно описал проблемы RT выполнения запросов (или операций вообще, безотносительно СУБД). Вы начинаете нести какую-то фигню по поводу дробления. ?
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39072512
Зимаргл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdvЗимаргл,

и вообще - дробятся, не дробятся... выполнить запрос надо за 0.1 сек. а он выполняется за 0.2 сек. Что будете делать?
Казалось бы, в предыдущем сообщении я внятно описал проблемы RT выполнения запросов (или операций вообще, безотносительно СУБД). Вы начинаете нести какую-то фигню по поводу дробления. ?
Я занимаюсь РТ системами.
Ты занимаешься СУБД.
Это совершенно ортогональные миры. Непонятно, с чего ты вдруг к СУБД решил приплести РТ? Ты же в этом не понимаешь. И пример написал неадекватный, типа "как правильно вышивать на тракторе". Его обсуждать бессмысленно.

1.Система может являться РТ с _любым_ детерминированным временем отклика. Хоть год. Хотя обычно быстрые.
2.Обычная ОС (и даже тулсет ОС) или СУБД никогда не превратится в РТ независимо от количества бубнов.
2.1 SQL СУБД по определению не может быть РТ для произвольных запросов.
3.Нужно использовать адекватные инструменты.

Для ТС самый адекватный совет 18251956 . Если для какого либо тултипа или автокомплита, так можно даже не в отдельном потоке.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39072513
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗимарглЭто совершенно ортогональные миры. Непонятно, с чего ты вдруг к СУБД решил приплести РТ?
потому что я общался с людьми, которые разрабатывают РТ-СУБД. А вот с вами продолжать общение не имею ни малейшего желания.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39072645
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSНе пробовал, но вариант в оракле:
1. делаешь пайплан-функцию с одним из вх. параметров время выполнения
2. на входе засекаешь время начала работы с выходом из ф-ции по указанному таймауту
3. делаешь селект к этой функции
4. если все нормуль, радуешься )

В оракле помоему есть более правилные варианты.
Создать профил. В профиле указать мах время выполнения запроса.
Создать пользователя и приписать ему профил.

Пищу по помяти, если чего полутал или забыл - извените.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39072812
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
Searcher2,
хотелось бы узнать пример, где это можно применить на практике.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39073162
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikronСоздать профил. В профиле указать мах время выполнения запроса.
угу и все запросы будут работать ровно 2 секунды. Отлично решение! )))
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39073252
Фотография roden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikron
В оракле помоему есть более правилные варианты.

Для адептов оракла всегда так
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39073338
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikronПищу по помяти, если чего полутал или забыл - извените.
Да. Есть такое вроде, но не испытывал )
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39073357
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSНе пробовал, но вариант в оракле:
1. делаешь пайплан-функцию с одним из вх. параметров время выполнения
В общем случае очевидно неработоспособен. Впрочем, учитывая, что такой проект вообще неработоспособен, разница небольшая.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39073430
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvSergueiЕсли в оракле, можете делать ограничение по количеству выбираемых записей.
это не то, и есть практически в любой СУБД

select first n /skip m...
select top n ...
select ... order by ... rows n ...

Чем отличается "это" от "того"? Я так понимаю у ТС стоит задача сделать юзер интерфейс отзывчивым, ограничивая выборку данных.
Почему нельзя сделать это таким образом можете поснить?
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39073567
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerВ общем случае очевидно неработоспособен. Впрочем, учитывая, что такой проект вообще неработоспособен, разница небольшая.
Проверил ради интереса (правда таймаут маленький)):
Код: 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.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
SQL> create type TypeTestObject as object (object_id number)
  2  /
Type created
SQL> create type TypeTest as table of TypeTestObject;
  2  /
Type created
SQL> create or replace function test_func return TypeTest pipelined
  2  is
  3    t number;
  4  begin
  5    t := dbms_utility.get_time;
  6    for i in (select tao.OBJECT_NAME, tao.OBJECT_ID, tao.OBJECT_TYPE
  7                from all_objects tao)
  8    loop
  9       if dbms_utility.get_time - t > 10 then
 10          raise_application_error(-20001, 'Таймаут еррор )');
 11       end if;
 12  
 13       pipe row (TypeTestObject(i.object_id));
 14    end loop;
 15  end;
 16  /
Function created
SQL> select *
  2    from table(test_func)
  3  /
 OBJECT_ID
----------
       258
       259
       311
       313
       314
       316
       317
       319
       605
       886
       887
       889
       890
       901
       903
       905
       907
       909
       911
       913
 OBJECT_ID
----------
       915
       917
       919
       921
       923
       925
       927
       929
       931
       933
       935
       937
       939
       941
       943
       945
       947
       949
       951
       953
       955
 OBJECT_ID
----------
       957
       959
       961
       963
       965
       967
       969
       971
       973
       975
       977
       979
       981
       983
       984
       985
       987
       989
       991
       993
       995
 OBJECT_ID
----------
       997
       999
      1001
      1003
      1005
      1007
      1009
      1011
      1013
      1015
      1017
      1019
      1021
      1023
      1025
      1027
      1029
      1031
      1033
      1035
      1037
 OBJECT_ID
----------
      1039
      1041
      1043
      1044
      1045
      1047
      1049
      1051
      1053
      1055
      1057
      1059
      1061
      1063
      1065
      1067
      1069
select *
  from table(test_func)
ORA-20001: Таймаут еррор )
ORA-06512: на  "AGS.TEST_FUNC", line 10


И как только начал, сразу понял, что это не совсем корректно - запрос в лупе-то кто будет отсекать?
А здесь получается только фетч и то похоже, что не корректно отсекается - во всяком случае на клиенте выйти точно на указанное время будет почти нереально ) В общем конечно не вариант.

mikron, правильно вспомнил, параметр есть вроде как.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39073611
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serguei, тем, что 1. даже с роунум запрос в итоге
может отрабатывать дольше чем хочет ТС
2. Все-таки он заведомо вернет не все записи )
В общем ерунда какая-то. В реальной жизни можно сравнить, когда приходишь, а там очередь, посмотрел, что долго, решил не стоять и свалил.
ТС видимо, хотел бы сделать то же самое в субд )
В таком случае обычно стараются уходить от запросов, которые заведомо будут долгими.
Ограничивают выборку условиями, делают предв. оценку и если что выдают соотв. сообщение, ну или делать промежуточную прослойку.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39073633
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSSerguei, тем, что 1. даже с роунум запрос в итоге
может отрабатывать дольше чем хочет ТС
2. Все-таки он заведомо вернет не все записи )

У нас в системе есть такие запросы для того чтобы, когда пользователь задал слишком широкие критерии поиска, что бы не тянуть на клиента слишком много данных. Все равно огромные списки бесмысленны - работать с ними невозможно.
Так что нужно правильно использовать такие штуки. ИМХО.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39073739
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serguei,

ваша решение тожебессмысленно
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / СУБД с возможностью указать сколько секунд делать выборку
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]