Мне нужно найти быстрый способ определить, существуют ли записи в таблице базы данных. Обычный метод IF Exists (условие) не достаточно быстрый для моих нужд. Я нашел что-то, что быстрее, но работает не совсем так, как задумано.
Обычный ЕСЛИ существует (условие), которое работает, но слишком медленно для моих нужд:
IF EXISTS (SELECT *
From dbo.SecurityPriceHistory
Where FortLabel = 'EP'
and TradeTime >= '2020-03-20 15:03:53.000'
and Price >= 2345.26)
Моя работа не работает, но очень быстра:
IF EXISTS (SELECT IIF(COUNT(*) = 0, null, 1)
From dbo.SecurityPriceHistory
Where FortLabel = 'EP'
and TradeTime >= '2020-03-20 15:03:53.000'
and Price >= 2345.26)
Проблема со вторым решением заключается в том, что когда count (*) = 0, возвращается значение null, но это приводит к тому, что IF EXISTS (null) возвращает true.
Второе решение быстро, потому что он не читает никаких данных в плане выполнения, в то время как первый действительно читает данные.