вобщем опять начало глючить
такое ощущение что getData() возращает не все записи а только текущуюь выборку
в результате с кеша берутся потом обрезанные данные
без кеширования все работает ок
1. Наследуемся от класса CActiveDataProvider
2. Добавляем туда свойство типа public $cacheExpire - будем кэшировать данные провайдера только в том случае, если значение задано (т.к. не всегда нам нужно кэширование)
3. Переопределяем методы fetchData() и calculateTotalItemCount() так, чтобы они использовали кэш. Для формирования ключа используем название модели и засериализованную критерию.
Можно туда ещё прикрутить, например, возможность задания макс. кол-ва страниц, которые будут кэшироваться - чтобы не кэшировать всю выдачу. Но это уже по вкусу.