Не понятно - фильтр по полю 2 работает с фильтром по полю 1 или первый пункт никак не связан со вторым, т.е. работает только фильтр по полю 2?
Если есть фильтр только по полю 2, то - все закономерно!
Ключ - это дерево, каждый из уровней которого - ключевое поле.
Быстро можно просмотреть ТОЛЬКО целиком весь первый уровень (т.е. фильтр только по первому полю) или очередной уровень какой-либо ОДНОЙ ветви.
Код: Выделить всё
01: 1Поле
02: 2Поле
03: 2Поле
04: 3Поле
05: 3Поле
06: 3Поле
07: 2Поле
08: 3Поле
09: 1Поле
10: 1Поле
11: 2Поле
- Если установлен фильтр по Полю1, то быстро можно пробежаться по верхним веткам 01-09-10.
- Если установлено ФИКСИРОВАННОЕ значение Поля1 и есть доп. фильтр по Полю2, то опять-же, можно быстро просмотреть все записи второго уровня ветки 01: 02-03-07
- Если установлено ФИКСИРОВАННОЕ значение для Поля1 и Поля2 и есть доп. фильтр по Полю3, то опять-же, получаем быструю выборку: 04-05-06
Из схемы видно, что если есть фильтр ТОЛЬКО по Полю2, то для выборки необходимо "проваливаться" в КАЖДУЮ ветку первого уровня и в КАЖДОЙ производить выборку по Полю2.
Т.е., при РУЧНОМ обходе с оптимизированным алгоритмом надо пройтись как минимум по 01-09-10 и, дополнительно, по некоторым записям второго уровня ветки 01 и захватить запись 11.
Я НЕ УВЕРЕН, что VIEW использует такой оптимизированный алгоритм.
А с обычным алгоритмом прийдется обойти ВСЕ записи таблицы, включая и ненужные, по условиям фильтра, записи третьего уровня!
Если-же фильтр у тебя задан и для поля1 и для поля2 одновременно и, как ты написал, задано ФИКСИРОВАННОЕ значение поля1, то надо смотреть на сам фильтр - возможно используются обороты, которые труднопонимаемы для парсера VIEW и не могут быть преобразованы в быстрый проход. Опять-же - какой тип у Поля2?
Для строковых полей, к примеру, очень часто помогает задание в фильтре UPPER(Поле2). Естественно, только для регистронечувствительной выборки. Хотя, честно говоря, еще ни разу не приходилось это использовать - нормально работает и так.
Вообщем, распиши свой вопрос более подробно.
Удачи!
=============================
С уважением,
Олег А. Руденко.
Oleg_Rudenko@mail.ru
Oleg_Rudenko@mail333.com
Библиотека DynaLib
http://dynalib.narod.ru
Написал: ClaList(2)