|
![]() |
#1 |
Участник
|
Цитата:
![]() Цитата:
Показательный пример - это классы работы с оборотно-сальдовыми ведомостями в Dax2009. Чудовищные тормоза и простая замена map на временные таблицы дает резкий скачок производительности даже без оптимизации остального кода. В данной-то задаче это не критично, но, повторюсь, пихать мапы везде, потому что это "упрощает понимание кода" и "более высокий уровень абстракции" - не стоит. Надо понимать, что придется "принести в жертву" производительность. Так я не против. Просто нельзя бездумно лепить их везде, где это теоретически возможно. ![]() Цитата:
![]() В принципе, тут вообще не нужны ни контейнеры, ни map. Я не понимаю, почему не сконструировали команду Select-SQL за один проход по списку полей индекса. Ну, что-то вроде такого X++: strSelectList += ' count(*)'; fleldNum = 1; if (dataPrCompany) { fleldNum++; strSelectList += ', dataAreaId'; strGroupList += ', dataAreaId'; strOrderList += ', ' + int2str(fieldnum); } for (i = 1; i <= numberOfFields; i++) { if (...) { fleldNum++; strSelectList += ', ' + fieldname; strGroupList += ', ' + fieldname; strOrderList += ', ' + int2str(fieldnum); } } stmtStr = 'select ' + strSelectList + 'from ... group by ' + strGroupList + ' order by ' + strOrderList; (...) Здесь разработчик явно действовал "по шаблону". Причем взятому откуда-то из другого класса. Вот и получил то, что получил. Тоже, вероятно, думал об "абстракциях" ![]() Но! Повторюсь, это будет уже не исправление существующего кода, а написание нового. В духе личных предпочтений ![]()
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: Daiver (1). |
![]() |
#2 |
Участник
|
Дела давно минувших дней
![]()
__________________
Sergey Nefedov |
|
![]() |
#3 |
Участник
|
Оффтоп: Сергей, Ваша ссылка в подписи http://itmagnet.ru/ ведет в никуда.
|
|
![]() |
#4 |
Участник
|
Цитата:
![]()
__________________
Sergey Nefedov |
|
Теги |
duplicates, index, sysdictindex, баг, индекс, ошибка |
|
|