У меня есть эта таблица (Таблица A):
(
[FieldA] [int] NOT NULL,
[FieldB] [int] NOT NULL,
[Value] [float] NULL
CONSTRAINT [PK_TableA] PRIMARY KEY CLUSTERED
(
[FieldA] ASC,
[FieldB] ASC
)
Существует несколько различных значений FieldA, скажем, FieldA может быть {1,2,3,4,5,6}.
Почему этот запрос вызывает полное сканирование таблицы:
SELECT COUNT(*) FROM TableA WHERE FieldB = 1
Хотя это не так:
SELECT COUNT(*) FROM TableA WHERE FieldB = 1 where FieldA in (1,2,3,4,5,6)
Не может ли сервер Sql оптимизировать это?Если бы у меня был TableB, где FieldA был PK, и я присоединился к TableB и TableA, запрос выполнялся бы аналогично второму запросу.