SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Microsoft SQL Server » Есть ли у вас идеи как лучше написать запрос, который будет меньше данных считывать? (Есть ли у вас идеи как лучше написать запрос, который будет меньше данных считывать?)
Есть ли у вас идеи как лучше написать запрос, который будет меньше данных считывать? [сообщение #4521] Fri, 23 February 2024 14:05 Переход к предыдущему сообщению
mak_arti в настоящее время не в онлайне  mak_arti
Сообщений: 1
Зарегистрирован: February 2024
Junior Member
Есть одна таблица Crosses(ArticleId, CrossArticleId).
1 | 5
5 | 10
5 | 12
1 | 6
6 | 10
6 | 13
1 | 8
8 | 10
1 | 9
9 | 13
9 | 15
Сперва достаем все строки, у которых ArticleId = 1 и получаем следующие строки во временную таблицу @tempFlatCrosses(ArticleId, CrossArticleId)
1 | 5
1 | 6
1 | 8
1 | 9

Далее нужно сделать повторную выборку
select с.CrossArticleId from Crosses c
inner join @tempFlatCrosses f on c.ArticleId = f.CrossArticleId
То мы получим много дубликатов, будет считывать много лишних строков из таблицы Crosses.
10
12
10
13
10
13
15

Я понимаю что можно обойтись оператором Distinct, но все же хотелось чтобы запрос сканировал меньше данных из таблицы. Есть у вас идеи?

[Обновления: Fri, 23 February 2024 14:30]

Известить модератора

 
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Предыдущая тема: Sql запрос
Следующая тема: Перестал работать план обслуживания
Переход к форуму:
  


Текущее время: Thu May 09 13:54:23 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00922 секунд