C#.Help

RaMoNVicious

3d artist
Відповідь: C#.Help

...дело в том, что это прайс, он меняется очень часто, т.к. там кроме цены еще и наличие и срок поставки...
...я даже не знаю есть ли смысл его заливать в БД, т.к. это тоже будет занимать много времени...
 
Re: Відповідь: C#.Help

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

RaMoNVicious

3d artist
Відповідь: C#.Help

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

dreamer

Member
Re: Відповідь: C#.Help

да в том то и дело, что прайс выдается поставщиком... т.е. тупо целый файл в txt формате на 300 метров... я думаю с индексами тут может не получится... т.к. могут как удалятся позиции, так и добавляться новые... т.е. либо найти способ искать быстро по файлу как то... либо тратить туеву хучу минут и заливать сначала все БД, а потом работать с ней...
Тут весь весь вопрос состоит в том, что происходит чаще — изменение прайса или поиск.
Если изменяются данные раз в неделю (или раз в пару дней), а поиск происходит десятки раз в день то база лучше (проще за пять минут перезалить данные в базу).
 

RaMoNVicious

3d artist
Відповідь: C#.Help

dreamer, спасибо... вы правы, поиск будет чаще... но например только чтение из файла (что бы потом выгрузить в БД) 50К записей ушло окло 3-5 минут... и это без парсинга строк...

...в общем попробую сегодня варианты с БД...
 

RaMoNVicious

3d artist
Відповідь: C#.Help

в общем, обновление прайсов раз в сутки... т.е. тратить сколько то часов на заливку данных в БД - не выход... :(
 

dreamer

Member
Re: Відповідь: C#.Help

dreamer, спасибо... вы правы, поиск будет чаще... но например только чтение из файла (что бы потом выгрузить в БД) 50К записей ушло окло 3-5 минут... и это без парсинга строк...

...в общем попробую сегодня варианты с БД...
Не загружайте сразу все в память, грузите построчно (или другими блоками) и сразу кладите в базу.
Лучше один раз потратить на это 5 минут чем каждый раз ждать результатов эти самые 5 минут.
Либо поиск будет медленный либо все равно потребует предварительной индексации.
 

RaMoNVicious

3d artist
Відповідь: C#.Help

все решилось... великий интернет - славься...
...итак, внимание... 6 187 282 строки из тектового файла размером в 286Мб считало за 10-15 секунд...
...ацкий код:
Код:
string[] s = File.ReadAllLines(filePath, Encoding.Default);
:razz:
 

dreamer

Member
Re: Відповідь: C#.Help

все решилось... великий интернет - славься...
...итак, внимание... 6 187 282 строки из тектового файла размером в 286Мб считало за 10-15 секунд...
...ацкий код:
Код:
string[] s = File.ReadAllLines(filePath, Encoding.Default);
:razz:
И выжрало при этом 300 мб памяти :)
 
Зверху