[SQL Server] Пустой Output List в Key Lookup
От: Somescout  
Дата: 28.06.17 03:06
Оценка:
Здравствуйте.

Настраивая запрос в SQLServer наткнулся на связку Index Seek (Non-clustered) + Key Lookup для одной таблицы. Открыл Output List и добавил все поля из него в Included в индексе. Но Key Lookup не исчез, просто Output list стал пустым.

Стал разбираться: в одном из условий есть ссылка на поле, не учавствующее в индексе. Поскольку поле не возвращается, в Output List оно не попадает. После добавления поля в индекс, Key Lookup изсчез, всё отлично, но — можно ли как-то найти такое поле не просмотривая запрос, только из данных Execution Plan?

Схожая ситуация в другом запросе, вида "WHERE a.id in (select b.key from table_b b ...)" — поле b.key тоже не отображается в свойствах Execution Plan, и также требуется для избавления от Key Lookup.
ARI ARI ARI... Arrivederci!
Отредактировано 28.06.2017 3:38 Somescout . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.