У меня были случае когда несколько мелких запросов работало быстрее:
1. Baan + BaanBase
BaanBase довольно тупая база данных, поставлявшаяся с Baan IV. На ней что-то сложное работало всегда медленней чем что-то несложное, при этом была большая скорость обмена данных с бааном
2. Baan + Oracle - в таблице было большое количество индексов, и оракл почему-то использовал неправильный. Разбиение на два запроса помогло ораклу разобраться что к чему
Еще есть соображение по поводу кеширования: если есть маленький справочник и большая таблица с данными, то выборка по отдельности теоретически может быть быстрее джоина т.к. справочник может закешироваться и объекм пересылаемых между звеньями данных может уменьшиться.
...
>>>А Вы уверены, что у Вас все данные больше 0? И не надо суммировать данные меньше 0? И подобные данные не появятся в будущем?
рекомендую при длительной оптимизации (то есть когда долго что-то оптимизируется да и вообще при длительных эквивалентных преобрзованиях), заиксировать набор исходных данных и запускать unit test на нем - тогда при ошибке сразу получаешь по мозгам.
|