|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от glibs
![]() Ни фига себе... Быстро вставка у вас работать на таком хозяйстве не будет.
Вариант оптимизации — писать в таблицу без индексов, потом копировать в таблицу с индексами. Здесь можно применить и прямой SQL (с RecId уже проблем не будет). Но это очень жесткий (я бы сказал экстремальный) метод. Цитата:
У вас тоже такой опыт был? Цитата:
Сообщение от glibs
![]() Так все-таки, если отказаться от вставки — т.е. прогнать скрипт вхолостую — сколько времени уйдет? Просто секундомером замерить нужно без профайлера.
Т.е. закоментарьте строчки ttsbegin; this.writePrognosisLines... prognosisLineList.insertDatabase(); this.prognosisTotals(); ttscommit; Если будет долго, то бросайте. Нужно будет разбирать сам select. Проблема четко определить самые тяжелые вещи, много факторов разных.
__________________
-- regards, Oleksandr |
|
![]() |
#2 |
Member
|
Цитата:
Сообщение от Oleksandr
...
Ну я так и понял... Потому что закономерностей в резуьтатах никаких. У вас тоже такой опыт был? ... Профайлер — вещь очень полезная, но для поиска недостатков в коде. Как правило, его имеет смысл начинать использовать, если с запросами уже все ОК, и за счет их ускорения не ожидается ощутимого прироста в производительности. Профайлер дает вменяемые результаты, если вызовов не очень много. Если вызовов много, то результаты начинают искажаться за счет того, что профайлер начинает поглощать существенно больше ресурсов, чем сам подопытный код. Профайлер больше всего подходит для того, чтобы, например, уменьшить время отклика на форме с 3000 миллисекунд до 500 миллисекунд. И для аналогичных задач. При умелом использовании он позволяет помочь обнаружить причину и долго играющего кода. Примером такого кода может быть цикл с очень большим количеством очень мелких обращений к базе (что затруднительно отловить мониторингом запросов с заданной аппертурой).
__________________
С уважением, glibs® |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|