ну если просто удалить строи из файла, то я бы попробовал через sed.
что то вроде такого однострочника:
for i in `cat file1`; do sed "/${i}/d" -i file2 ;done
грубо конечно, но первое что приходит в голову
abcd0x00:
Как писали выше: "БД по ряду причин не вариант"
вообщем по тем данным которые предоставили, для скорости я рекомендую awk, возможно в обвязке с bash, sed.
abcd0x00: в условии задачи не говорилось даже что полей может быть разное количество.
Всегда можно прогнать сначала через sed, заменив разделитель на свой уникальный, а потом прогнать опять же через awk.
Спрашивают же как получить максимальную скорость обработки, а не максимальну скорость обработки на python.
Не совсем то, но вот интересная статья со сравнением. habrahabr.ru/post/267697
Вы протестируйте, а результаты сравнения python vs awk огласите, думаю многим будет интересно.
Для справки, awk умеет искать по шаблонам, использовать циклы и сравнения.
эм.. у вас же csv с явним разделителем в виде "," вам только указать какие поля обрабатывать, тут без всязк grep'ов можно обойтись. https://ru.wikipedia.org/wiki/AWK он изначально разрабатывался для "разбора" больших данных.
У меня приблизительно гигабайтный файл перебиратся около минуты(подсчет количества входждений по условиям)
WellWisher: c индексом btree чтоно не умеет.
>И все варианты оптимизации больше "физические"
у вас простейший запрос с условием по одному полю, максимум что можно с него выжать, это отсечь null значения в _VALUE_ (если они есть).
> настройки по-умолчанию
это означает что у вас конфиг из поставки, где ни однин параметр вроде work_mem или shared_buffers не менялся? если да, то советую пройтись по конфигу хотя бы pg_tune'ом(отлайн верися pgtune.leopard.in.ua/)
в догонку, если записей милиард, но активно используется только милин, то тут опять спасат партицирование, конкретно перести нужные партишены на скоросной рейд :)
ну если чисто теоритическое, то можно использовать рейд из ссд(зеркало),
создать отдельный тейблспейс который разместить на созданом рейде и перести таблицу в новый тейблспейс.
Грид это даже не надстройка, а скорее эволюция OEM.
Без доступа в базу адекватно вряд ли выйде что то сделать, вам то и нужно что только select c с пары системных таблиц.
а вот через агент ОЕМ(только сейчас заметил что вы спрашивали про агента, а не про вебинтерфейс)
я даже не подскажу, так как не использовал его.
Если ответ помог, то можете отметить как решение