powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
25 сообщений из 471, страница 13 из 19
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042706
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg
Victor Ichalov,

Повторил у себя ---- ОХРЕНЕТЬ!!!

Это чудо какое то.

Спасибо огромнейшее. Сейчас подсуну туда настоящий файл. Он у меня уже просчитан для 10


С ходу - не сработало :-(

Что-ж мне так не везёт, блин.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042708
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Ichalov,

Когда будет презентация-конференция ваших запросов?

У меня вопрос. Ваши запросы подойдут для любых аналогичных входящих данных или это какой то частный случай? - я в коде вижу, что вы используете конкретную строку - или это для проверки?
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042717
Victor Ichalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miltorg

Когда будет презентация-конференция ваших запросов?


Я не знаю, пока хотелось бы этого избежать.

miltorg

Ваши запросы подойдут для любых аналогичных входящих данных или это какой то частный случай? - я в коде вижу, что вы используете конкретную строку - или это для проверки?


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

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
mysql> select count(*) from miltbase1 where sequence regexp '( .+){19}';
+----------+
| count(*) |
+----------+
|     5000 |
+----------+

mysql> select count(*) from miltbase1 where sequence regexp '( .+){20}';
+----------+
| count(*) |
+----------+
|        0 |
+----------+



Может там подчёркивания, а не пробелы? Вообще сложно что-то ответить по предложенной диагностической информации. Возвращается пустая выборка или какая-то ошибка?
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042720
Victor Ichalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Даже скорее какой-то такой проверочный запрос:
Код: sql
1.
2.
mysql> select * from miltbase1 where not sequence regexp '^[0-9]+( [0-9]+){19}$';
Empty set (0.24 sec)
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042739
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно задачу в лоб решить, но итоговый селект с перестановками нужно динамически формировать

Пример для 10 чисел в итоговой выборке.

Код: sql
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.
create table #Temp(Dt date, nv tinyint, primary key(dt,nv))
insert into #Temp(Dt,nv)
select try_convert(date,t.d,104), v.value
from #Temp1 t
cross apply string_split(t.s,' ') v

create table #TempGBy(Dt date, nv varchar(255), index ix_nv(nv))
insert into #TempGBy(Dt, nv)
-- Все перестановки по 10
SELECT t01.dt, cast(t01.nv as varchar(3)) +' '+ cast(t02.nv as varchar(3)) +' '+ cast(t03.nv as varchar(3)) +' '+ cast(t04.nv as varchar(3)) +' '+ cast(t05.nv as varchar(3)) +' '+ cast(t06.nv as varchar(3)) +' '+ cast(t07.nv as varchar(3)) +' '+ cast(t08.nv as varchar(3)) +' '+ cast(t09.nv as varchar(3)) +' '+ cast(t10.nv as varchar(3))
FROM #Temp t01
INNER JOIN #Temp t02 ON t02.Dt=t01.dt AND t02.nv > t01.nv
INNER JOIN #Temp t03 ON t03.Dt=t01.dt AND t03.nv > t02.nv AND t03.nv > t01.nv
INNER JOIN #Temp t04 ON t04.Dt=t01.dt AND t04.nv > t03.nv AND t04.nv > t02.nv AND t04.nv > t01.nv
INNER JOIN #Temp t05 ON t05.Dt=t01.dt AND t05.nv > t04.nv AND t05.nv > t03.nv AND t05.nv > t02.nv AND t05.nv > t01.nv
INNER JOIN #Temp t06 ON t06.Dt=t01.dt AND t06.nv > t05.nv AND t06.nv > t04.nv AND t06.nv > t03.nv AND t06.nv > t02.nv AND t06.nv > t01.nv
INNER JOIN #Temp t07 ON t07.Dt=t01.dt AND t07.nv > t06.nv AND t07.nv > t05.nv AND t07.nv > t04.nv AND t07.nv > t03.nv AND t07.nv > t02.nv AND t07.nv > t01.nv
INNER JOIN #Temp t08 ON t08.Dt=t01.dt AND t08.nv > t07.nv AND t08.nv > t06.nv AND t08.nv > t05.nv AND t08.nv > t04.nv AND t08.nv > t03.nv AND t08.nv > t02.nv AND t08.nv > t01.nv 
INNER JOIN #Temp t09 ON t09.Dt=t01.dt AND t09.nv > t08.nv AND t09.nv > t07.nv AND t09.nv > t06.nv AND t09.nv > t05.nv AND t09.nv > t04.nv AND t09.nv > t03.nv AND t09.nv > t02.nv AND t09.nv > t01.nv
INNER JOIN #Temp t10 ON t10.Dt=t01.dt AND t10.nv > t09.nv AND t10.nv > t08.nv AND t10.nv > t07.nv AND t10.nv > t06.nv AND t10.nv > t05.nv AND t10.nv > t04.nv AND t10.nv > t03.nv AND t10.nv > t02.nv AND t10.nv > t01.nv
--WHERE t01.dt='2016-07-14'

SELECT nv, Cnt=COUNT(1), STRING_AGG(dt, ',') 
FROM #TempGBy
GROUP BY nv
HAVING COUNT(1) > 3
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042749
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подфиксил у себя баг. Связан с этим чортовым символом табуляции который в оригинальном txt/csv
используется. Вобщем я проглатывал 1 символ хромосомы. Из за этого многие единички не попадали в репорт.
Теперь 60 тысяч потенциальных кластеров есть.

Вот шапка отчота сортированного по размеру измерений в кластере.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
mayton@ryzen-ssd:~/git/happy-prohoroff$ head -n 20 report-ordered-by-cl-dimensions.json5 
{
  // Generated with SimilarChromosomeLookup (BitSet optimization) 1.0.1
  // Java Runtime Version : 11.0.9.1+1-Ubuntu-0ubuntu1.20.04
  // Top 2147483647 clusters findings, ranked by ''
  // Date: Sun Feb 07 02:18:56 EET 2021
  // Src: /bigdata/prohorov/miltbase.txt
  // Threashold range : [10..14]
  // Lines count : 5000
  { clusterId : '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15', clusterDimenstions : 15, chromosomesInCluster : 2, chromosomePositions : [3332, 3333] }
  { clusterId : '3,4,7,13,17,18,19,25,32,36,41,42,64,76', clusterDimenstions : 14, chromosomesInCluster : 2, chromosomePositions : [759, 2615] }
  { clusterId : '1,4,10,12,16,26,30,32,38,42,44,48,69,72', clusterDimenstions : 14, chromosomesInCluster : 2, chromosomePositions : [159, 2503] }
  { clusterId : '1,2,3,4,5,6,7,8,9,10,11,12,13,14', clusterDimenstions : 14, chromosomesInCluster : 3, chromosomePositions : [3332, 3333, 3334] }
  { clusterId : '11,13,24,31,34,39,50,54,56,58,62,69,71,75', clusterDimenstions : 14, chromosomesInCluster : 2, chromosomePositions : [530, 2092] }
  { clusterId : '3,20,21,22,26,28,30,36,38,49,53,61,62,79', clusterDimenstions : 14, chromosomesInCluster : 2, chromosomePositions : [3191, 4826] }
  { clusterId : '10,17,28,33,34,35,40,42,51,69,73,75,77,79', clusterDimenstions : 14, chromosomesInCluster : 2, chromosomePositions : [981, 2949] }
  { clusterId : '2,3,4,5,22,26,28,34,46,50,53,55,67,79', clusterDimenstions : 14, chromosomesInCluster : 2, chromosomePositions : [3198, 3586] }
  { clusterId : '2,5,17,22,23,31,32,47,50,53,56,68,73', clusterDimenstions : 13, chromosomesInCluster : 2, chromosomePositions : [3459, 3730] }
  { clusterId : '3,5,7,14,15,20,33,39,47,62,69,71,73', clusterDimenstions : 13, chromosomesInCluster : 2, chromosomePositions : [3043, 4670] }
  { clusterId : '5,6,7,19,23,28,36,38,41,42,60,67,70', clusterDimenstions : 13, chromosomesInCluster : 2, chromosomePositions : [522, 2660] }
  { clusterId : '2,8,12,22,26,27,38,44,66,69,70,72,74', clusterDimenstions : 13, chromosomesInCluster : 2, chromosomePositions : [1888, 4317] }



Вот хвост.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
mayton@ryzen-ssd:~/git/happy-prohoroff$ tail report-ordered-by-cl-dimensions.json5 
  { clusterId : '11,12,18,29,31,36,41,48,71,77', clusterDimenstions : 10, chromosomesInCluster : 2, chromosomePositions : [2627, 3800] }
  { clusterId : '9,11,12,19,24,29,30,52,78,79', clusterDimenstions : 10, chromosomesInCluster : 2, chromosomePositions : [3464, 4895] }
  { clusterId : '12,30,40,41,45,52,59,63,67,79', clusterDimenstions : 10, chromosomesInCluster : 2, chromosomePositions : [1759, 4409] }
  { clusterId : '15,19,33,40,44,46,48,57,74,76', clusterDimenstions : 10, chromosomesInCluster : 2, chromosomePositions : [780, 1082] }
  { clusterId : '14,37,48,56,57,59,63,67,75,76', clusterDimenstions : 10, chromosomesInCluster : 2, chromosomePositions : [4410, 4412] }
  // ElapsedTime      : 3012 ms, 
  // maxClusterDimensions : 15, 
  // maxChromosomesInCluster : 5 
  // clusters         : 66449
}

...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042750
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И тоже самое. Отсортировано по количеству хромосом к властере.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
{
  // Generated with SimilarChromosomeLookup (BitSet optimization) 1.0.1
  // Java Runtime Version : 11.0.9.1+1-Ubuntu-0ubuntu1.20.04
  // Top 2147483647 clusters findings, ranked by ''
  // Date: Sun Feb 07 02:18:53 EET 2021
  // Src: /bigdata/prohorov/miltbase.txt
  // Threashold range : [10..14]
  // Lines count : 5000
  { clusterId : '1,2,3,4,5,6,7,8,9,10,11,12', clusterDimenstions : 12, chromosomesInCluster : 5, chromosomePositions : [3332, 3333, 3334, 3335, 3336] }
  { clusterId : '1,2,3,4,5,6,7,8,9,10,11,12,13', clusterDimenstions : 13, chromosomesInCluster : 4, chromosomePositions : [3332, 3333, 3334, 3335] }
  { clusterId : '14,21,22,32,33,35,45,60,64,72', clusterDimenstions : 10, chromosomesInCluster : 3, chromosomePositions : [1184, 3158, 3709] }
  { clusterId : '1,2,3,4,5,6,7,8,9,10,11,12,13,14', clusterDimenstions : 14, chromosomesInCluster : 3, chromosomePositions : [3332, 3333, 3334] }
  { clusterId : '15,19,20,38,41,43,51,54,66,74', clusterDimenstions : 10, chromosomesInCluster : 3, chromosomePositions : [181, 1261, 3639] }
  { clusterId : '21,29,50,53,60,61,63,64,70,71', clusterDimenstions : 10, chromosomesInCluster : 3, chromosomePositions : [38, 674, 2768] }
  { clusterId : '10,22,36,37,46,54,59,64,74,78', clusterDimenstions : 10, chromosomesInCluster : 3, chromosomePositions : [471, 2980, 3009] }
  { clusterId : '4,7,8,30,31,44,45,49,55,67', clusterDimenstions : 10, chromosomesInCluster : 3, chromosomePositions : [233, 2050, 4516] }
  { clusterId : '1,4,6,10,32,44,45,61,70,75', clusterDimenstions : 10, chromosomesInCluster : 2, chromosomePositions : [2003, 3325] }
  { clusterId : '4,11,13,23,27,32,33,54,61,73', clusterDimenstions : 10, chromosomesInCluster : 2, chromosomePositions : [3008, 3967] }
  { clusterId : '4,10,17,21,23,32,53,54,61,76', clusterDimenstions : 10, chromosomesInCluster : 2, chromosomePositions : [3601, 4263] }
  { clusterId : '7,8,23,28,38,39,42,52,71,75', clusterDimenstions : 10, chromosomesInCluster : 2, chromosomePositions : [548, 2660] }



Андрон. Устинов. Н5N1. Смотрите. Ищите несоответсвия.

Исходник и бинарь я предоставлю. Просто во мне сидит воинстующий эстет и я не хочу его отдавать
в виде рваной салфетки где я писал каракули и все прочее. Привык... знаетели к clean code.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042754
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

там на входе уже другой файл - miltbase1.txt ))
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042765
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Андрон. Устинов. Н5N1. Смотрите. Ищите несоответсвия.

Исходник и бинарь я предоставлю. Просто во мне сидит воинстующий эстет и я не хочу его отдавать
в виде рваной салфетки где я писал каракули и все прочее. Привык... знаетели к clean code.

clean code предполагает наличие итегрейшен теста, напишите интегрейшен тест уже, в ваших салфетках лажа. я же написал, в верном ответе на miltbase.txt должны быть 66 строк "clusterDimenstions : 10, chromosomesInCluster : 5"

вход для теста
Код: plaintext
1.
2.
3.
4.
5.
cat miltbase.txt | grep "1 2 3 4 5 6 7 8 9 10 11 12"
14.07.2016      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
15.07.2016      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 26 27 28 29 30
16.07.2016      1 2 3 4 5 6 7 8 9 10 11 12 13 14 35 36 37 38 39 40
17.07.2016      1 2 3 4 5 6 7 8 9 10 11 12 13 44 45 46 47 48 49 50
18.07.2016      1 2 3 4 5 6 7 8 9 10 11 12 53 54 55 56 57 58 59 60


выход: https://filebin.net/eg5q9277xuqpqvtw/integration_test_out.txt?t=rp9s0q41
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042768
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Ichalov,

Спасибо.
Возвращается недовыборка

Если у вас так строго с пробелами - я сейчас гляну нетестовый исходный
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042781
Victor Ichalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miltorg
Возвращается недовыборка


Другой причиной может быть то что мои запросы только сравнивают непрерывные подпоследовательности. Т.е. они не засчитывают такое как совпадение:

Код: plaintext
1.
 10 20 30 40 41 42 43 44 45  50
 10  15  20 30 40 41 42 43 44 45 


Просто может в miltbase1 такого нет, поэтому результат совпадает.

Ну можно написать SQL чтобы все упорядоченные комбинации сравнивал. Но это будет:
1. Медленнее
2. Видимо прогрессивно медленнее с уменьшением длины подпоследовательности
3. Сложно определить в процессе сколько процентов уже сделано (в perl полегче)
4. Вызывать необходимость следить за памятью, т.к. если она кончится в процессе то результата не дождёшься
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042794
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1

clean code предполагает наличие итегрейшен теста, напишите интегрейшен тест уже, в ваших салфетках лажа. я же написал, в верном ответе на miltbase.txt должны быть 66 строк "clusterDimenstions : 10, chromosomesInCluster : 5"

Ну .. интеграционные мы пока отложим. Они предполагают минимум несколько взаимодействующих
модулей системы. У меня - просто процедура main. И интегрироваться там несчем.

По поводу архивов.

Код: sql
1.
2.
3.
4.
5.
6.
Archive:  miltbase.zip
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
  348628  Defl:N    85876  75% 2021-02-05 12:58 91ba78c4  miltbase.txt
--------          -------  ---                            -------
  348628            85876  75%                            1 file



У меня последний файлик с контольной суммой 91ba78c4. Дайте линку на более актуальный. Не могу найти по треду.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042796
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

22276243

советую обработать в текстовом редакторе, заменив ТАВ после даты на ЗПТ
у меня это первая обязательная обработка данных



дом-2 жив, однако...
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042798
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov, спасибо. Чет не заметил.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042803
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Ichalov
miltorg
Возвращается недовыборка


Другой причиной может быть то что мои запросы только сравнивают непрерывные подпоследовательности. Т.е. они не засчитывают такое как совпадение:

Код: plaintext
1.
 10 20 30 40 41 42 43 44 45  50
 10  15  20 30 40 41 42 43 44 45 


Просто может в miltbase1 такого нет, поэтому результат совпадает.

Ну можно написать SQL чтобы все упорядоченные комбинации сравнивал. Но это будет:
1. Медленнее
2. Видимо прогрессивно медленнее с уменьшением длины подпоследовательности
3. Сложно определить в процессе сколько процентов уже сделано (в perl полегче)
4. Вызывать необходимость следить за памятью, т.к. если она кончится в процессе то результата не дождёшься


То есть вы делали задание под себя, а не по заданию?
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042812
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg,

Пошёл 2 месяц "простенького задания". Но у меня есть хоть долгие, но решения.
У вас? - Нет ничего?
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042813
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Ну .. интеграционные мы пока отложим. Они предполагают минимум несколько взаимодействующих
модулей системы. У меня - просто процедура main. И интегрироваться там несчем.

странновастые мягко говоря у вас представления.
ладно, я утомился. топик в какой-то чат малолеток превратился. я говорю на этот вход должно быть 66 строк выхода, ноль внимания.
вот мой джарник, собранный на java 15 и фолдер с заглушкой от хадупа. как запустить видно в bat файле. вывод параметризован - или в вашем стиле или тот что хотел miltorg.
https://filebin.net/tngol6xocmvfzm7l/app1.zip?t=k7k0oin1

по мне так надо нормальный пример генерить, где и 19 совпадений встретиться могут, ну и инпут побольше, хотя бы 10к, ведь если пару раз в день строка добавляется ...
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042815
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg,

решение есть давно, еще с прошлого топика

22276283
автору его осталось превратить в ОТВЕТ
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042816
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov
решение есть давно, еще с прошлого топика

22276283
автору его осталось превратить в ОТВЕТ

по мне так это халтура базирующаяся на знании как был сгенерирован тестсет. на miltorg1.txt оно уже кривой ответ даст
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042817
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
mayton

Ну .. интеграционные мы пока отложим. Они предполагают минимум несколько взаимодействующих
модулей системы. У меня - просто процедура main. И интегрироваться там несчем.

странновастые мягко говоря у вас представления.
ладно, я утомился. топик в какой-то чат малолеток превратился. я говорю на этот вход должно быть 66 строк выхода, ноль внимания.
вот мой джарник, собранный на java 15 и фолдер с заглушкой от хадупа. как запустить видно в bat файле. вывод параметризован - или в вашем стиле или тот что хотел miltorg.
https://filebin.net/tngol6xocmvfzm7l/app1.zip?t=k7k0oin1

по мне так надо нормальный пример генерить, где и 19 совпадений встретиться могут, ну и инпут побольше, хотя бы 10к, ведь если пару раз в день строка добавляется ...

Я не против хадупа. Я его использовал в AWS. Просто решение для Андрея надо упростить так чтобы он мог
хотя-бы это standalone запустить на любой тачке где установлена JRE. Скопировать и запустить шелл или бат-скриптик.

По поводу кластера 1 2 3 4 5 6 7 8 9 10 11 12.

Он был найден. И классифицирован дважды как подкластер более точного 1 2 3 4 5 6 7 8 9 10 11 12 13.

И три хромосомы в разных сочетаниях туда зашли.

Это отфильтровано из отчота.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
head report-ordered-by-cl-elements-1.json5
{
  // Generated with SimilarChromosomeLookup (BitSet optimization) 1.0.1
  // Java Runtime Version : 11.0.9.1+1-Ubuntu-0ubuntu1.20.04
  // Top 2147483647 clusters findings, ranked by ''
  // Date: Sun Feb 07 14:12:00 EET 2021
  // Src: /bigdata/prohorov/miltbase1.txt
  // Threashold range : [10..14]
  // Lines count : 5000
  { clusterId : '3,5,7,9,11,17,20,22,23,24', clusterDimenstions : 10, chromosomesInCluster : 4, chromosomePositions : [3331, 3332, 3333, 3337] }
  { clusterId : '1,2,3,4,5,6,7,8,9,10,11,12', clusterDimenstions : 12, chromosomesInCluster : 3, chromosomePositions : [3334, 3335, 3336] }



Код: sql
1.
2.
3.
grep -F "1,2,3,4,5,6,7,8,9,10,11,12" < report-ordered-by-cl-elements-1.json5
  { clusterId : '1,2,3,4,5,6,7,8,9,10,11,12', clusterDimenstions : 12, chromosomesInCluster : 3, chromosomePositions : [3334, 3335, 3336] }
  { clusterId : '1,2,3,4,5,6,7,8,9,10,11,12,13', clusterDimenstions : 13, chromosomesInCluster : 2, chromosomePositions : [3334, 3335] }



Почему должно быть 66 ?
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042818
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1,

какая халтура не понял
это по miltorg1.txt и есть, хотите проверьте
поиск вхождения наборов через битовые ф-ии
находим пары вхождения и группируем по набору вхождения . Все.
Та как эта тема висит уже месяц - для меня это уже просто комедийный сериал

Т.к. автор выуживает конечный код под ключ для передачи заказчику - поэтому такой странный топик, и это уже второй
первый здесь Как отсортировать 1 миллиард записей?
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042822
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Ichalov
miltorg

Когда будет презентация-конференция ваших запросов?


Я не знаю, пока хотелось бы этого избежать.

miltorg

Ваши запросы подойдут для любых аналогичных входящих данных или это какой то частный случай? - я в коде вижу, что вы используете конкретную строку - или это для проверки?


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

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
mysql> select count(*) from miltbase1 where sequence regexp '( .+){19}';
+----------+
| count(*) |
+----------+
|     5000 |
+----------+

mysql> select count(*) from miltbase1 where sequence regexp '( .+){20}';
+----------+
| count(*) |
+----------+
|        0 |
+----------+



Может там подчёркивания, а не пробелы? Вообще сложно что-то ответить по предложенной диагностической информации. Возвращается пустая выборка или какая-то ошибка?


Вот первые 20 строк нетестового файла:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
2.1.2012	5 7 8 15 22 23 27 34 37 39 40 41 43 44 50 55 57 58 62 70
3.1.2012	3 5 9 12 15 16 19 20 23 25 29 30 34 37 43 48 55 58 59 61
4.1.2012	2 3 5 12 15 21 23 24 26 28 36 37 38 39 50 53 55 59 66 68
5.1.2012	2 3 5 7 8 11 14 16 19 25 35 43 50 51 55 60 61 66 67 70
6.1.2012	2 8 11 12 14 17 18 20 21 28 36 43 50 53 55 56 59 62 64 66
7.1.2012	2 5 10 11 15 16 18 19 27 29 30 32 33 35 42 43 45 62 63 65
8.1.2012	5 6 7 8 16 21 27 30 39 46 49 50 51 53 54 58 62 64 68 70
9.1.2012	1 2 3 7 9 11 12 13 15 17 20 24 26 28 34 45 48 49 61 66
10.1.2012	7 8 12 13 14 21 23 24 27 28 30 38 40 49 50 52 53 54 63 68
11.1.2012	1 3 5 7 9 10 14 21 23 27 31 34 45 46 47 48 51 52 64 65
12.1.2012	1 5 6 7 9 11 14 17 29 30 33 36 37 39 42 43 48 50 64 65
13.1.2012	2 9 11 12 13 17 18 23 25 27 33 38 40 44 45 46 47 52 64 66
14.1.2012	1 5 6 11 14 16 17 20 22 23 25 26 31 41 44 47 56 59 64 70
15.1.2012	3 5 9 19 24 25 26 27 28 33 34 40 45 50 53 55 59 63 64 66
16.1.2012	3 6 8 11 13 19 23 25 28 32 33 34 37 41 50 54 56 57 59 65
17.1.2012	2 3 5 7 15 23 28 29 32 37 38 46 49 50 52 53 59 60 61 62
18.1.2012	1 5 7 9 11 16 18 20 22 25 26 35 45 46 47 51 56 67 68 70
19.1.2012	11 15 16 22 25 28 29 32 34 35 42 43 47 49 52 53 54 57 62 63
20.1.2012	8 9 15 17 26 30 31 35 37 38 41 42 44 50 52 58 60 64 66 69
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042823
Victor Ichalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miltorg
То есть вы делали задание под себя, а не по заданию?


Вообще, я отвечал на вопрос "Как оптимизировать скорость?": "Вам лучше всего будет переписать perl скрипт ... Но это сложно написать без рабочего тестового стенда." (т.е. без реалистичных данных которые разложены в таблицы со структурой, требуемой скриптом)

Что касается "Могу предложить решение чисто на MySQL ...", то я его сделал для кросс-проверки что из тестовых данных действительно получается требуемое, оно выглядело подходящим, поэтому я его опубликовал именно чтобы можно было свериться с другими решениями, найти причины расхождений, если они есть. Я тут вижу проблему скорее в том что по тестовым примерам не очевидно что требуется найти также совпадения подпоследовательностей с разрывами и в общей массе написанного также сложно найти где это требование явно указано. (Кстати, оно точно нужно заказчику? Я в биоинформатике не очень разбираюсь, но уже оптимизировал что-то подобное и там вроде нужно было сравнивать только непрерывные последовательности.)
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042824
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

комбинации по 10 из 12 = 12!/(12-10)!*10! = 66

и там 5 строк совпадений

3333-3334-3335-3336-3337 5 1 2 3 4 5 6 7 8 9 10 11 12

нумерация у меня с 1 по файлу miltorg.txt
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042826
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton


Код: sql
1.
2.
3.
grep -F "1,2,3,4,5,6,7,8,9,10,11,12" < report-ordered-by-cl-elements-1.json5
  { clusterId : '1,2,3,4,5,6,7,8,9,10,11,12', clusterDimenstions : 12, chromosomesInCluster : 3, chromosomePositions : [3334, 3335, 3336] }
  { clusterId : '1,2,3,4,5,6,7,8,9,10,11,12,13', clusterDimenstions : 13, chromosomesInCluster : 2, chromosomePositions : [3334, 3335] }



Почему должно быть 66 ?
у H5N1, сопадающий набор из 12 чисел уже разложен по 10 здесь 22276120
...
Рейтинг: 0 / 0
25 сообщений из 471, страница 13 из 19
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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