Я озадачен следующим. У меня есть БД с 10 миллионами строк, и (среди других индексов) в 1 столбце (campaignid_int) есть индекс.
Теперь у меня есть 700k строк, где агитайд действительно 3835
Для всех этих строк connectionid одинакова.
Я просто хочу узнать эту connectionid.
use messaging_db;
SELECT TOP (1) connectionid
FROM outgoing_messages WITH (NOLOCK)
WHERE (campaignid_int = 3835)
Теперь для выполнения этого запроса требуется около 30 секунд!
I (с моим небольшим знанием db) ожидал бы, что он возьмет любую из строк и вернет мне, что connectionid
Если я тестирую этот же запрос для кампании, которая имеет только 1 запись, она идет очень быстро. Таким образом, индекс работает.
Как бы я справился с этим и почему это не сработало?
изменить:
estimated execution plan:
select (0%) - top (0%) - clustered index scan (100%)