powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Пятничная задача: Красное и черное
25 сообщений из 176, страница 2 из 8
Пятничная задача: Красное и черное
    #40018414
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graycode
Это называется без тяжелой артиллерии?
Тяжесть модели в ее прожорливости к CPU & RAM. Cоответсвенно пользоваться ею когда она тривиально заменяется аналитикой/pattern matching это не самая лучшая идея.

Если продолжить разговор про перфоманс далее, то даже однослойная аналитика уступает в производительности match_recognize а у тебя два WINDOW SORT.

В плане других замечаний - не лучшая мысль сканировать исходную таблицу дважды.
Код: plsql
1.
2.
3.
select x1 as x, decode(c, 'red', 1, 0), decode(c, 'black', 1, 0) from t
union all
select x2 + 1 as x, decode(c, 'red', -1, 0), decode(c, 'black', -1, 0) from t

cross join будет быстрее, а unpivot еще быстрее.

Код: plsql
1.
range unbounded preceding

Нет особого смысла указывать то, что и так по умолчанию.

В остальном, в решении всё разложено по полочкам, вполне прилично.
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018417
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НеофитSQL
Одно из решений.
Это, конечно, креативно, но более неэффективного подхода придумать сложно.
Сгенерировать диапазон от начала первого до конца последнего можно было (но генерировать вообще не стоит) и с помощью connect by + nvl по двум скалярам.
В недокументированных функциях тоже никакого смысла нет.
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018419
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кобанчег
НеофитSQL
Одно из решений.
Это, конечно, креативно, но более неэффективного подхода придумать сложно.
Сгенерировать диапазон от начала первого до конца последнего можно было (но генерировать вообще не стоит) и с помощью connect by + nvl по двум скалярам.
В недокументированных функциях тоже никакого смысла нет.


Вы перечислили несколько недостатков моего решения, там наверное еще десяток можно насчитать :)

Я не знаю как применить connect by в этом контексте, и использовал корявое формирование диапазонов надеясь, что кто-то знает как это делать правильно и эффективно.

Вы можете мне показать, как из этого:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
with t (n, c) as
(
select 1, 'red' from dual
union all select 2, 'red' from dual
union all select 3, 'blue' from dual
union all select 4, 'red' from dual
}



Сделать такое:

1 2 red
3 3 blue
4 4 red

?

Числа последовательные, без дырок. Граничные условия не важны интересен принцип
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018420
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graycode
не так изящно конечно и наверное можно упростить, но выкрутиться можно

Если я ничего не упустил в
Код: plsql
1.
keep (dense_rank first order by x)

смысла нет, там можно просто min.

У меня с аналитикой что-то аналогичное.
По сути итоговый цвет получается с помощью
Код: plsql
1.
nvl(decode(src_active, 1, src_c), decode(tgt_active, 1, tgt_c))

остальное - вариация на тему start of group.
Код: 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.
, tt as
(
select x1,
       nvl(decode(src_active, 1, src_c), decode(tgt_active, 1, tgt_c)) result,
       lag(nvl(decode(src_active, 1, src_c), decode(tgt_active, 1, tgt_c))) over(order by x1) prev_result
  from (select x1,
               sum(decode(flag, 'src', sign)) over(order by x1, type) src_active,
               sum(decode(flag, 'tgt', sign)) over(order by x1, type) tgt_active,
               last_value(decode(flag, 'src', c) ignore nulls) over(order by x1, type) src_c,
               last_value(decode(flag, 'tgt', c) ignore nulls) over(order by x1, type) tgt_c
          from (select c,
                       flag,
                       type,
                       x + decode(type, 'X2', 1, 0) x1,
                       decode(type, 'X1', 1, 'X2', -1) sign
                  from t unpivot(x for type in(x1, x2)))) t
)
select *
  from (select min(x1) x1,
               lead(min(x1)) over(order by grp) - 1 x2,
               min(result) result
          from (select tt.*, sum(decode(result, prev_result, 0, 1)) over(order by x1) grp from tt)
         group by grp)
 where x2 is not null


Но еще была попытка изящно решить с помощью pattern matching.
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018421
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НеофитSQL,

Если воспользоваться генератором из запроса env то можно дописать как-то так
(но здесь не нужен генератор и коррелированные скаляры тоже не нужны)
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select min(n) x1, max(n) x2, result
  from (select t.*,
               n - row_number() over(partition by result order by n) grp
          from (select t.*,
                       nvl((select max(c) from t where flag = 'src' and n between x1 and x2),
                           (select max(c) from t where flag = 'tgt' and n between x1 and x2)) result
                  from nums t) t)
 group by result, grp
 order by 1
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018424
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я пропустил упражнение-разминку, ответы еще принимаются?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
select y1,y2,nvl(c,'none') from 
  (select lag(x) over (order by x) as y1, x-1 as y2, 
          (select nvl(listagg(c,',') within group (order by c),'none')
           from t where x-0.5 between x1 and x2+1) as c
    from (select x1 x from t union select x2+1 x from t))
 where y1 is not null
 order by y1
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018425
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кобанчег
НеофитSQL,

Если воспользоваться генератором из запроса env то можно дописать как-то так
(но здесь не нужен генератор и коррелированные скаляры тоже не нужны)


Спасибо, напомнили про connect-by для генерации чисел, я редко его вижу.

Я спросил про connect-by, думая про задачу схлопывания интервалов.
Вы это назвали "beginning of group". Есть ли оконное выражение, которое позволяет обрабатывать повторяющуеся группы, как partition by позволяет обрабатывать уникальные группы?

Например, в следующем отсортитованном резалтсете есть три группы (апельсины:2, яблоки:2 и апельсины:1)
апельсин 2
апельсин 3
яблоко 1
яблоко 1
апельсин 1

Как в таком случае эти группы извлечь? Есть специальный оператор, или придется ловить начало группы, подглядывая соседние строчки?
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018447
graycode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кобанчег
Тяжесть модели в ее прожорливости к CPU & RAM. Cоответсвенно пользоваться ею когда она тривиально заменяется аналитикой/pattern matching это не самая лучшая идея.

Если продолжить разговор про перфоманс далее, то даже однослойная аналитика уступает в производительности match_recognize а у тебя два WINDOW SORT.

Видимо я неправильно понял задачу, я исходил из посыла что все кроме трансформации исходного запроса и аналитики запрещено.

Если подходить с точки зрения производительности, то все вышеперечисленное проигрывает решению на PL/SQL, в котором даже unpivot не нужен.
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018454
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graycode
Если подходить с точки зрения производительности,
Не нужно. Пятничные задачи они, скорее в "синтаксисе", в потенциях.
Монохромность изначальной постановки понизила градус полезности.

Как автор признал, задача-баян. Необходимость решать её не сопровождаемыми способами немотивирована.
Если в задаче подразумевались -лярды данных, то об этом не было заявлено.

В свете всего этого лучшее решение - сопровождаемое. Т.е. уровень вхождения в который меньше/проще.
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018475
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НеофитSQL
Я пропустил упражнение-разминку, ответы еще принимаются?
Конечно, принимаются.
Только полезно читать другие ответы перед публикацией своего.
Возможно придёт понимание что в коррелированном скаляре нет смысла абсолютно никакого.
НеофитSQL
Вы это назвали "beginning of group". Есть ли оконное выражение, которое позволяет обрабатывать повторяющуеся группы, как partition by позволяет обрабатывать уникальные группы?
На форуме это вроде называют start of group.
Ты пробовал запустить 22232251 ?
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018477
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graycode
Видимо я неправильно понял задачу, я исходил из посыла что все кроме трансформации исходного запроса и аналитики запрещено.
Странный посыл. Было замечено только что
1) модель не самое подходящее средство
2) решается без подзапросов и соединений
Казалось бы причем здесь вообще трансформации.
Даже при наличии подзапросов они могут быть а могут и не быть.
graycode
Если подходить с точки зрения производительности, то все вышеперечисленное проигрывает решению на PL/SQL, в котором даже unpivot не нужен.
И ты сможешь его продемонстрировать?
Я даже потружусь нагенерить данных чтоб показать несостоятельность этого заявления.
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018483
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic
Как автор признал, задача-баян.
А что относительно расширенной постановки? Сможешь дать конкретную ссылку на решение?
Elic
Необходимость решать её не сопровождаемыми способами немотивирована.
Если в задаче подразумевались -лярды данных, то об этом не было заявлено.

В свете всего этого лучшее решение - сопровождаемое. Т.е. уровень вхождения в который меньше/проще.
Если тебе по стариковски, понять многослойную аналитику проще чем pattern matching это не значит что стоит переносить сие восприятие на остальных.
На pattern matching, впрочем, свет тоже клином не сошелся.
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018495
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кобанчег
Если тебе по стариковски, понять многослойную аналитику проще чем pattern matching это не значит что стоит переносить сие восприятие на остальных.
Выводы из-за отсутствия информации - всегда ложные.

Кобанчег
На pattern matching, впрочем, свет тоже клином не сошелся.
Если честно, то я не совсем понял в чём вызов.
Сопровождабельно решается джойном. Огласи систему ценностей.
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018497
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic
Выводы из-за отсутствия информации - всегда ложные.
Вот не могу не согласиться.
Ты не поверишь, но я даже бегло читал читал эту книгу. А что предлагается из нее почерпнуть?
Elic
Огласи систему ценностей.
Перфоманс плюс сопровождаемость, пожалуй.
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018500
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic
Если честно, то я не совсем понял в чём вызов.
Вызова нет, тема была создана чтоб другие поразмялись... и вдруг какая новая идея всплывёт.
Для меня вызов был решить однопроходно в SQL, но еще до создания темы я пришел к тому что это невозможно.
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018511
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно мой вариант таков.
Код: 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.
select *
  from
(
select x1,
       nvl(decode(src_active, 1, src_c), decode(tgt_active, 1, tgt_c)) result
  from (select x1,
               sum(decode(flag, 'src', sign)) over(order by x1, type) src_active,
               sum(decode(flag, 'tgt', sign)) over(order by x1, type) tgt_active,
               last_value(decode(flag, 'src', c) ignore nulls) over(order by x1, type) src_c,
               last_value(decode(flag, 'tgt', c) ignore nulls) over(order by x1, type) tgt_c
          from (select c,
                       flag,
                       type,
                       x + decode(type, 'X2', 1, 0) x1,
                       decode(type, 'X1', 1, 'X2', -1) sign
                  from t unpivot(x for type in(x1, x2)))) t
)
match_recognize
(
  order by x1
  measures
    first(x.x1) x1,
    next(x.x1) - 1 x2,
    x.result result
  pattern (x+)
  define
    x as first(nvl(result, '~')) = nvl(result, '~') and next(x1) is not null
)

MATCH RECOGNIZE SORT DETERMINISTIC FINITE AUTOMATON + WINDOW SORT + UNPIVOT

При попытке решить однопроходно с match recognize упираешься в то, что "активный" цвет для текущей группы определяется по всему набору а match recognize не позволяет заглядывать в предыдущие группы.
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018515
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Под однопрохоность в контексте задачи понимается
одно сканирование таблицы (это неизбежно)
+
одна операция SORT сверху (это тоже неизбежно ибо порядок все определяет).

В моем решении как видно две сортировки.

В решении graycode WINDOW SORT * 5 + WINDOW BUFFER + HASH GROUP BY + 2 сканирования таблицы
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018516
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кобанчег
что предлагается из нее почерпнуть?
Ким в доходчивой форме объясняет"шаблонные" фичи в том числе и "старпёрам"
technical reviewer :)


Кобанчег
Вызова нет, тема была создана чтоб другие поразмялись... и вдруг какая новая идея всплывёт.
Для меня вызов был решить однопроходно в SQL,
Однопроходность с точки зрения пятничности - это меньше букв. А это, как правило, в ущерб сопровождаемости и производительности.
Подтверждаешь ухудшение пятничности?
Я, как старпёр, дотошен :\
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018526
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

Про однопроходность написано сообщением выше, критерии тоже озвучены. Мы не code golf тут занимаемся. ;)
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018605
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Жаль, критерий трудно определить объективно.

У меня получилось так. Обилие вложенных селектов и оконных функций кажется неэффективным, но зато нет подчиненных селектов, которые считаются злом.

Теперь пойду смотреть как другие решили.

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

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
p as (
select * from (
  select x, flag, decode(z,'X1',c,'-') c, z
    from (select x1, x2+1 x2, c, flag from t) tt
 unpivot (x for z in (x1,x2))) 
 pivot (max(c) for flag in ('src' s,'tgt' t))
),
q as (
select x x1, lead(x) over (order by x) -1 x2, c from (
  select x, c, lag(c) over (order by x) cp from (
    select x, decode(s,'-',t,s) c from (
      select x,
             last_value(s ignore nulls) over (order by x) s,
             last_value(t ignore nulls) over (order by x) t
        from p
      )
    )
  )
 where c != nvl(cp,' ')
)
select x1,x2,c from q
 where x1 <= x2  
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018607
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заодно хочу сказать большое спасибо участникам форума за вклад в развитие новичков, включая меня.
Я еще месяц назад такой код со словарем не смог бы прочитать.
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018642
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кобанчег

graycode
Если подходить с точки зрения производительности, то все вышеперечисленное проигрывает решению на PL/SQL, в котором даже unpivot не нужен.
И ты сможешь его продемонстрировать?
Я даже потружусь нагенерить данных чтоб показать несостоятельность этого заявления.


Я такого же мнения, что и graycode. Мне было бы интересно устроить гонки опубликованных подходов против компилированного Pl/SQL. Там все решится в один цикл без аналитических функций, повторных сортировок или временных таблиц в памяти.

PL/SQL процедуру я напишу, если будут данные.
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018693
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кобанчег
В общем эта была разминка, теперь предлагается задачка посложнее.

Необходимо наложить интервалы из источника на приемник с приоритетом из источника (если есть пересечение).


я так понимаю доминантный ето src, отределяется в строке, а не цветом

цветов много, поетому пересечений может быть больше двух

такое
union all select 7, 20, 'yellow', 'src' from dual
union all select 10, 30, 'red', 'src' from dual
union all select 8, 35, 'black', 'tgt' from dual
union all select 33, 40, 'yellow', 'tgt' from dual
возможно ?

ps
чтоб исключить соблазн генерации connect by, диапазаны ето даты или дробные

.....
stax
...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018928
graycode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кобанчег
И ты сможешь его продемонстрировать?
Я даже потружусь нагенерить данных чтоб показать несостоятельность этого заявления.


Вроде нигде с условиями не накосячил))
Код: 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.
create type res_rec_t as object (x1 number, x2 number, res varchar2(50));
/
create type res_tab_t as table of res_rec_t;
/
create type src_rec_t as object (x1 number, x2 number, c varchar2(50), flag varchar2(50));
/

create or replace function f_superimpose(p_refcur sys_refcursor) return res_tab_t pipelined is
    l_res        res_rec_t;
    l_src        src_rec_t;
    l_curr_flag  varchar2(50);
begin
    fetch p_refcur into l_src;
    if p_refcur%NOTFOUND then 
        return;
    end if;
    
    l_res := res_rec_t(l_src.x1, l_src.x2, l_src.c);
    l_curr_flag := l_src.flag;

    loop
        fetch p_refcur into l_src;
        exit when p_refcur%NOTFOUND;
        
        -- разрыв
        if l_src.x1 - l_res.x2 > 1 then
            pipe row (l_res);
            l_res.x1 := l_res.x2 + 1;
            l_res.x2 := l_src.x1 - 1;
            l_res.res := '';
            pipe row (l_res);
            l_res.x1  := l_src.x1;
            l_res.x2  := l_src.x2;
            l_res.res := l_src.c;
            l_curr_flag := l_src.flag;
            continue;
        end if;
        
        -- касание
        if l_src.x1 - l_res.x2 = 1 then
            if l_src.c = l_res.res then
                l_res.x2  := l_src.x2;
                l_curr_flag := l_src.flag;
            else
                pipe row (l_res);
                l_res.x1  := l_src.x1;
                l_res.x2  := l_src.x2;
                l_res.res := l_src.c;
                l_curr_flag := l_src.flag;
            end if;
            continue;
        end if;

        -- пересечение
        if l_src.x1 - l_res.x2 < 1 then
            if l_curr_flag = 'src' then
                if l_src.x2 > l_res.x2 then
                    if l_src.c = l_res.res then
                        l_res.x2  := l_src.x2;
                        l_curr_flag := l_src.flag;
                    else
                        pipe row (l_res);
                        l_res.x1  := l_res.x2 + 1;
                        l_res.x2  := l_src.x2;
                        l_res.res := l_src.c;
                        l_curr_flag := l_src.flag;
                    end if;
                end if;
            elsif l_curr_flag = 'tgt' then
                if l_src.x2 >= l_res.x2 then
                    if l_src.c = l_res.res then
                        l_res.x2  := l_src.x2;
                        l_curr_flag := l_src.flag;
                    else
                        if l_src.x1 > l_res.x1 then
                            l_res.x2 := l_src.x1 - 1;
                            pipe row (l_res);
                        end if;
                        l_res.x1  := l_src.x1;
                        l_res.x2  := l_src.x2;
                        l_res.res := l_src.c;
                        l_curr_flag := l_src.flag;
                    end if;
                else
                    if l_src.c != l_res.res then
                        if l_src.x1 > l_res.x1 then
                            pipe row (res_rec_t(l_res.x1, l_src.x1 - 1, l_res.res));
                        end if;
                        pipe row (res_rec_t(l_src.x1, l_src.x2, l_src.c));
                        l_res.x1 := l_src.x2 + 1;
                    end if;
                end if;
            end if;
        end if;
    end loop;

    pipe row (l_res);
    close p_refcur;
end;
/

select * from table(f_superimpose(cursor(
with t (x1, x2, c, flag) as
(
select 1, 4, 'red', 'src' from dual
union all select 7, 10, 'yellow', 'src' from dual
union all select 13, 16, 'red', 'src' from dual
union all select 3, 7, 'black', 'tgt' from dual
union all select 9, 11, 'black', 'tgt' from dual
union all select 13, 14, 'black', 'tgt' from dual
union all select 16, 19, 'blue', 'tgt' from dual
union all select 18, 22, 'green', 'src' from dual
union all select 22, 25, 'black', 'tgt' from dual
union all select 26, 28, 'red', 'src' from dual
union all select 29, 30, 'red', 'tgt' from dual
union all select 32, 33, 'black', 'tgt' from dual
)
select src_rec_t(x1, x2, c, flag) from t order by x1, flag
)));

...
Рейтинг: 0 / 0
Пятничная задача: Красное и черное
    #40018937
graycode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НеофитSQL
Интересно, какого размера нужен дата сет, чтобы померять сравнительную производительность разных подходов?

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


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