powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / СУБД с возможностью указать сколько секунд делать выборку
11 сообщений из 36, страница 2 из 2
СУБД с возможностью указать сколько секунд делать выборку
    #39074206
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosваша решение тожебессмысленно
Спасибо за ваше мнение, оно очень важно для меня, но мнение заказчика для меня важнее.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39074309
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergueiно мнение заказчика для меня важнее.
заказчик часто несет ахинею, поэтому нужно уметь его переубеждать. Если все делать в точности как хочет заказчик, то обычно получается говнософт.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39075170
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvДохтаРНа месте архитектора я бы такой функционал в продуктив не пустил бы.
почитайте про "системы реального времени". Есть "мягкие" и "жесткие". Для "жестких"
" Ситуация, в которой обработка событий происходит за время, большее предусмотренного, в системе жёсткого реального времени считается фатальной ошибкой. "

Допустим, приложению нужен ответ на запрос в течение 1 секунды. Через 2 секунды результат запроса уже нафиг не будет нужен. Поэтому через 2 секунды запрос уже можно отрубать. А если такого ограничения нет, то запрос может выполняться и 3 и более секунд, что приведет к общему уменьшению отклика системы, что сделает неактуальным и ДРУГИЕ запросы.
Так что при наличии данного требования (ограничения запросов по времени), и его отсутствия в реализации, система при определенной нагрузке просто встанет раком.

Я в курсе, мне из оракла приходилось делать подобие
системы реального времени , валидировать планы
по гарантированному количесту иопсов не более чем,
играться с размещением
размерами блоков управлением экстентами
в табличных пространствах , разбрасывать
БД шпинделям где у каждой группы шпинделей свой кеш.
Выделять отдельные шпиндели и отдельный кеш стораджа под редологи,
так что бы в кеше помещалось минимум 2 редолога
и никто их оттуда ни прикаких обстоятельствах не выбивал.


СУБД не так умны как кажется, ограничения в секундах ничего не решают.

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


Директивно на уровне опции к запросу такие вопросы не решаются.

Ваши интерпретация хотелки ТС мне напоминает анекдот про прапорщика:

Поезд, стой ! , рас два.

А вобще он другое хочет, декларативно ткнуть в запрос пальцем
и непредсказуемо терять в нем констистентность выборки.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39075199
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что бы построить что то похожее
на систему реального времени из
СУБД, группе адекватных сисадминов
из минимум 3 человек знания которых
дополняют друг друга
в областях архитеркуры БД, стораджей, сетей,
инфраструктуры ЦОД, бизнес логики приложения,
мониторинга,
выдать длинные линейки , и выдать картбланш
на применение линеек по пальцам
нарушающих установленные ими правила игры,
не взирая на занимаемые должности.

С техникой и ПО все ясно и предсказуемо,
самое интересное начинается когда бизнес
интересы начинают вступать в конфликт интересов
и противоречия с SLA.
Сама по себе система реального времени в вакуме
не нужна, она должна уметь адаптироваться
под бизнес, который оплачивает ее существавание.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39075718
Ы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ы
Гость
ДохтаР,

Насколько я понимаю, ТС и не просил СУБД реального времени (что бы это ни означало). Его хотелку я бы интерпретировал так:
за указанное время СУБД должна вернуть один из четырех ответов:
вот данные, и это все данные;

вот данные, и, возможно, есть еще;

данные не найдены, но, возможно, есть;

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

Насколько я понимаю, ТС и не просил СУБД реального времени (что бы это ни означало). Его хотелку я бы интерпретировал так:
за указанное время СУБД должна вернуть один из четырех ответов:
вот данные, и это все данные;

вот данные, и, возможно, есть еще;

данные не найдены, но, возможно , есть;

данных точно нет.


Я ничего не говрил по поводу систем реального времени ,
пока kdv не начал меня в чем то убеждать.

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

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

Я ответил , что в системе такой компонент
потенциально вносить неопределенность
в поведение при эксплуатации
и в продуктив я бы этот функционал не тащил бы.







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

Насколько я понимаю, ТС и не просил СУБД реального времени (что бы это ни означало). Его хотелку я бы интерпретировал так:
за указанное время СУБД должна вернуть один из четырех ответов:
вот данные, и это все данные;

вот данные, и, возможно, есть еще;

данные не найдены, но, возможно, есть;

данных точно нет.

1 флаг ["фетч прерван"] и данные[их отсутствие] кроют ваш список как бык овцу.

можно эмулировать как declare + fetch next в асинхронном режиме со снятием.
нужно ли -- вопрос.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39076105
Ы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ы
Гость
этта1 флаг ["фетч прерван"] и данные[их отсутствие] кроют ваш список как бык овцу.
Ваш «бык» — лишь детали реализации, по смыслу он не отличим от моего списка.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39168160
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недокументированный параметр _query_execution_time_limit в Oracle с 12.1.0.2:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
SQL> alter session set "_query_execution_time_limit"=1;

Session altered.

SQL> select count(*) from xmltable('1 to 10000000');

  COUNT(*)
----------
    186929

1 row selected.

SQL> alter session set "_query_execution_time_limit"=0;

Session altered.

SQL> select count(*) from xmltable('1 to 10000000');

  COUNT(*)
----------
  10000000

1 row selected.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39171286
Фотография roden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot]СУБД с возможностью указать сколько секунд делать выборку
Первое что пришло в голову по названию темы - Аппарат событий (стр. 70) в ЛИНТЕР.
...
Рейтинг: 0 / 0
СУБД с возможностью указать сколько секунд делать выборку
    #39177354
Вадиман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSsoftwarerВ общем случае очевидно неработоспособен. Впрочем, учитывая, что такой проект вообще неработоспособен, разница небольшая.
Проверил ради интереса (правда таймаут маленький)):
Код: 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, правильно вспомнил, параметр есть вроде как.

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


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