@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 секунды вообще не устраивает(?
  • Вопрос задан
  • 107 просмотров
Решения вопроса 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 есть штука малоосмысленная.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы