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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Чем отличается "это" от "того"? Я так понимаю у ТС стоит задача сделать юзер интерфейс отзывчивым, ограничивая выборку данных.
Почему нельзя сделать это таким образом можете поснить?
...
Рейтинг: 0 / 0
10.10.2015, 16:49
    #39073567
JDS
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
10.10.2015, 18:46
    #39073611
JDS
JDS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СУБД с возможностью указать сколько секунд делать выборку
Serguei, тем, что 1. даже с роунум запрос в итоге
может отрабатывать дольше чем хочет ТС
2. Все-таки он заведомо вернет не все записи )
В общем ерунда какая-то. В реальной жизни можно сравнить, когда приходишь, а там очередь, посмотрел, что долго, решил не стоять и свалил.
ТС видимо, хотел бы сделать то же самое в субд )
В таком случае обычно стараются уходить от запросов, которые заведомо будут долгими.
Ограничивают выборку условиями, делают предв. оценку и если что выдают соотв. сообщение, ну или делать промежуточную прослойку.
...
Рейтинг: 0 / 0
10.10.2015, 19:54
    #39073633
Serguei
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СУБД с возможностью указать сколько секунд делать выборку
JDSSerguei, тем, что 1. даже с роунум запрос в итоге
может отрабатывать дольше чем хочет ТС
2. Все-таки он заведомо вернет не все записи )

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

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


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