Информация об изменениях

Сообщение [SQL Server] Пустой Output List в Key Lookup от 28.06.2017 3:06

Изменено 28.06.2017 3:38 Somescout

[SQL Server] Пусто Output List в Key Lookup
Здравствуйте.

Настраивая запрос в 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.
[SQL Server] Пустой Output List в Key Lookup
Здравствуйте.

Настраивая запрос в 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.