@artshelom

Как можно увеличить скорость запроса?

Делаю простой запрос:
SELECT top 500 * 
  FROM [dbo].[table1] 
  WHERE ([Id] NOT IN (select [ClientTableId] from [Entities] where [column] = '2'))

Cкорость выполнения: 23 секунды
Выполняю в Sql Server
[dbo].[table1] - 20541 записей
[dbo].[Entities] с where составляет - 4500 записей

Как можно увеличить скорость, то 23 секунды вообще не устраивает(?
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
@Akina
Сетевой и системный админ, SQL-программист.
SELECT TOP 500 * 
FROM [table] 
WHERE  NOT EXISTS ( SELECT NULL 
                    FROM [Entities] 
                    WHERE [column] = '2' 
                      AND [table1].[Id] = [ClientTableId] )


PS. Наличие индекса Entities (column, ClientTableId) - приветствуется. Впрочем, может, Entities (ClientTableId, column) окажется лучше - зависит от статистики данных.

PPS. TOP 500 без указания ORDER BY есть штука малоосмысленная.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы