Форум: "Базы";
Текущий архив: 2011.10.30;
Скачать: [xml.tar.bz2];
Внизнастройки bde для dbase level 7 Найти похожие ветки
← →
grammar-nazi (2010-02-03 15:09) [0]доброго времени суток.
есть .dbf-таблица (27 полей, размер записи - 301 байт) с несколькими индексами (4 expression-индекса и 1 простой) в .mdx-файле. таблица содержит чуть меньше 330 тыс. записей.
проблема такова: в таблицу нужно добавить записи за текущий период. таких записей около 1100 штук. добавляется лишь 328, после чего получаю исключение EDBEngineError "Read failure" (клиент, обнаруживший данную проблему, получал на этом месте исключение EAccessViolation в IDAPI32.DLL). после исключения .dbf-файл остаётся в самом неприглядном виде - последняя запись дописана не до конца (не дописано порядка 50 байтов), средствами BDE получить доступ к последним нескольким записям невозможно, их какбы нет.
примерно тоже самое происходит при импортировании данных в пустую таблицу идентичной структуры - т.е. невозможно даже записать данные, находящиеся в таблице, в другую такую же таблицу.
при удалении всех индексов, добавление проходит на ура. при удалении большей части старых записей из таблицы - тоже. к сожалению, это не решение проблемы.
пробовал увеличивать MDX BLOCK SIZE - не помогает. нужны идеи, заранее спасибо.
← →
Anatoly Podgoretsky © (2010-02-03 15:20) [1]Ну так определи какой именно индекс вызывает проблемы.
← →
grammar-nazi (2010-02-03 18:34) [2]когда определил индекс, всё оказалось до банального просто.
виноватым был единственный простой индекс (по одному полю). внимательнее посмотрел на данные; заметил, что 65% значений этого поля одинаковы. добавил в индекс ещё одно поле - всё отлично.
спасибо!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2011.10.30;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.004 c