Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
napTu3aH Гость
|
Добавлено: Чт Мар 23, 2006 8:53 am Заголовок сообщения: Быстродействие mapbasic'a |
|
|
Эта тема продолжение темы "Быстродействие mapBasic и интегрированная картография" с народного сайта. Перенес сюда ибо не нравится мне тот форум.
Cancer>60000 записей это немного, поверь мне. Все зависит от алгоритма обработки информации и структуры хранения этой обрабатываемой информации.
В том что это немного записей я не сомневаюсь.
Обрабатываемая информация находится в родном формате MapInfo - таблице (пробовал использовать базу access'a - выполнялось все раза в 2 дольше).
Алгоритм обработки не такой уж и большой.
Как я заметил основное время занимает непосредственно вставка данных в таблицу.
на примере базы содержащей 30000 записей и компа PII-350:
время выполнения проги -120 секунд
а если закомментировать строку Insert Into table_alias (obj,comment) Values (tmpobj,str) то выполняется 50 секунд.
Может есть какие тонкости работы с таблицами?
Хочется чтобы прога работала все-таки пошустрее :) |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
Добавлено: Чт Мар 23, 2006 8:54 am Заголовок сообщения: |
|
|
Что значит закомментировать строку Insert? А что тогда остается и работает как ты пишешь 50 сек? :)
У тебя на таблице индексы есть? Рекомендую при заливке большого количества данных в таблицу, сносить нафиг все индексы, а после заливки их восстанавливать, если необходимо - увеличение быстродействия порой в разы! |
|
Вернуться к началу |
|
|
napTu3aH Гость
|
Добавлено: Чт Мар 23, 2006 8:55 am Заголовок сообщения: |
|
|
Остается цикл с проходом по всем записям таблицы и их обработка(несколько переменных вычисляется для каждой записи)
Индексов нет.
Кстати формируемую таблицу я не сохраняю. Может через n-ое кол-во добавленных записей стоит делать сохранение таблицы или из-за этого не должно дольше выполнятся? |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
Добавлено: Чт Мар 23, 2006 8:56 am Заголовок сообщения: |
|
|
Ну считай, что тогда ты уже почти уперся в производительность своего винта! Я так понимаю это место MapInfo все равно оптимизировала уже по максимуму. Попробуй этот же поток (объем) информации записать на диск другой какой-нить прогой (напиши на чем-нить). Различаться наверняка будет на доли секунды.
Хотя... Попробуй перед заливкой включить режим FastEdit. Set Table "tablename" FastEdit On (доку почитай по нему). Может и поможет, там минуется лог транзакций, льется сразу на диск.
О результатах сообщить народу! :) |
|
Вернуться к началу |
|
|
napTu3aH Гость
|
Добавлено: Чт Мар 23, 2006 8:56 am Заголовок сообщения: |
|
|
Скорость увеличилась процентов на 20%
Перешел на интегрированную картографию, Delphi + BDE + mitab.dll - скорость увеличилась раз в 8-10 :)
Думаю выбор тут однозначен. |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
Добавлено: Чт Мар 23, 2006 8:57 am Заголовок сообщения: |
|
|
Я бы не сказал, что Delphi + BDE + mitab.dll - это интегрированная картография :) Скажи еще, что ты сам отображаешь Карту, читая напрямую из tab-файла :)))
Кстати, а зачем в связке BDE? |
|
Вернуться к началу |
|
|
napTu3aH Гость
|
Добавлено: Чт Мар 23, 2006 8:59 am Заголовок сообщения: |
|
|
Андрей Могильный писал(а): |
Я бы не сказал, что Delphi + BDE + mitab.dll - это интегрированная картография :) Скажи еще, что ты сам отображаешь Карту, читая напрямую из tab-файла :)))
Кстати, а зачем в связке BDE? |
А как же это иначе назвать, если не интегрированной картографией? (правда я забыл упомянуть про MI через ole, думал это и так ясно) :)
Читать tab файл мне как раз не нужно, мне нужно его формировать по данным из БД, а карту отображает MI :)
А BDE для работы с базой dBASE, для dbf файлов данный компонент самый шустрый. Но это не так важно, потом наверно на клиент-серверную технологию придется переходить и никакого BDE не будет :) |
|
Вернуться к началу |
|
|
|