![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Удаление из DBF [D7, dBase, FoxPro]
stone © (2006-02-26 16:13:00)Работаю с DBF (dBase IV) через BDE. Периодически необходимо удалять данные. Записей в файле порядка 10 млн. Удалить, в зависимости от условия (по двум полям), нужно около 500 тыс. Пока удаляю простым запросом (delete from ... where ...). Скорость удаления информации не достаточно высокая. Может у кого есть идеи как ускорить удаление инфомации?
Anatoly Podgoretsky (2006-02-26 19:41:00) [1]Прошу прощения, отвечал на совсем другую тему.
По этой теме не могу сказать, не использую, поскольку он ориентирован на ФоксПро, а меня интересует только dBase IV
Проблему решил переходом на Absolute Database Personal Edition.
Всю задачу на нем реализовал за два часа, совместимость по форматам и многопользовательскя работа мне не требовались. Из проблем некачественная информация об рантайм ошибка с вылетом по недопустимой операции, но это мелкие недостатки.
Anatoly Podgoretsky (2006-02-26 19:37:00) [2]Vlad © (26.02.06 19:22) [15]
Вроде нормально, он работает с физической структурой файла.
Кстати и здесь можно также или второй вариант - сделать шаблон в DBD (этот правильно работает, поскольку работает напрямую с БДЕ).
Vlad (2006-02-26 19:22:00) [3]
> Anatoly Podgoretsky © (26.02.06 19:17) [13]
А Halcyon как себя ведет?
Anatoly Podgoretsky (2006-02-26 19:21:00) [4]Ошибка выглядела так, имеем пустую таблицу, созданую с DBD
добавляем в цикле 10000 записей, смотри на RecordCount - видим примерно 43000.
Ладно идем в DBD и производим упаковку, снова смотрим на RecordCount - видим примерно 11000. Дальше не лечится. Моему приложению требовался правильный RecordCount
По последней версии, не работают индексы, ладно бы просто не сортировало, так в гриде показывается верную информацию по полю даты и произвольную из другиъ полей, посвторяет последнею, на которой стояло. А это уже крах.
До этого были и другие ошибки, немного они документированы в history.txt - а это единственная документация от авторов :-)
Anatoly Podgoretsky (2006-02-26 19:17:00) [5]А я их увидел на 10000, поскольку искал.
А на последней версии увидел ужас с индексами по полю типа D
Vlad (2006-02-26 19:14:00) [6]
> Anatoly Podgoretsky © (26.02.06 18:57) [11]
Интересно, буду знать.
Не помню, правда, какую версию я использовал, но записей было около 2-3 млн. Проблем не было.
Anatoly Podgoretsky (2006-02-26 18:57:00) [7]Vlad © (26.02.06 16:57) [9]
Чтобы потерять всю базу?
В последней версии опять обнаружились серьезные глюки с индексами.
А свыше 5000 записей таблица просто портится и ремонту не подлежит.
TDBf подходит только для очень простых, не критичных проектов.
Удивляют они меня на протяжении многих лет.
stone (2006-02-26 17:09:00) [8]
> Johnmen © (26.02.06 16:55) [7]
> Думается, что индексы будут только тормозить.
Сомневаюсь, но попробую без индексов...
Vlad (2006-02-26 16:57:00) [9]
> stone © (26.02.06 16:54) [6]
А не пробовал TDBf ?
Меня в свое время он приятно удивил по скорости, правда речь шла об insert
Sergey13 (2006-02-26 16:56:00) [10]2[7] Johnmen © (26.02.06 16:55)
Я тоже к этому вел. 8-)
Johnmen (2006-02-26 16:55:00) [11]Думается, что индексы будут только тормозить.
stone (2006-02-26 16:54:00) [12]
> Sergey13 © (26.02.06 16:51) [5]
> А в цикле индексы подключены?
Обижаешь :))
Все стандартные приемы я пробовал. Хотелось узнать, может есть какие хитрости, недокументированные возможности и т.д.
Sergey13 (2006-02-26 16:51:00) [13]А в цикле индексы подключены?
stone (2006-02-26 16:49:00) [14]
> А в where сильно наворочено? В цикле удалять не пробовал?
Довольно долго, больше часа. В цикле еще дольше.
Sergey13 (2006-02-26 16:42:00) [15]2 [2] stone © (26.02.06 16:34)
> Ты знаешь ...
Нет. Это я с горяча. 8-)
А все таки - сколько времени удаляет? Ради интереса.
А в where сильно наворочено? В цикле удалять не пробовал?
stone (2006-02-26 16:34:00) [16]
> Sergey13 © (26.02.06 16:27) [1]
> Индексы есть?
Ты знаешь как в LocalSQL принудительно указать использование какого-либо индекса?
Sergey13 (2006-02-26 16:27:00) [17]>Скорость удаления информации не достаточно высокая.
А скока точно? Индексы есть?