powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Поведение оптимизатора
2 сообщений из 2, страница 1 из 1
Поведение оптимизатора
    #39988271
Oomel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Товарищи, здравствуйте.

Существует две таблицы:
1. Analytic (nRec : binary(8)) nonclustered index on nRec unique;
2. AnSets (nRec : binary(8), cAnalyt : binary(8), set_name varchar(255)) nonclustered index on cAnalyt + set_name + nRec unique;


В первой таблице ~3к записей, во второй ~8к.

У второй таблы есть статистика по полям cAnalyt + set_name + nRec

Строю запрос:
Код: sql
1.
select nRec from AnSets where cAnalyt = 0x8000000000000001 and set_name = 'Набор1'


Получаю ожидаемый план выполнения - IndexSeek и вывод. При этом автоматически создается системная статистика _wa_sys_set_name _AnSets

Строю второй запрос

Код: sql
1.
select AnSets.nRec from Analytic inner join AnSets on cAnalyt = Analytic.nRec and set_name = 'Набор1' where Analytic.nRec = 0x8000000000000001 



Вместо IndexSeek для AnSets получаю IndexScan и предложение создать некластерный индекс set_name + cAnalyt.

Прошу помочь разобраться, почему так и куда можно посмотреть.

MS Sql server 2017
...
Рейтинг: 0 / 0
Поведение оптимизатора
    #39988283
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напишите
Код: sql
1.
select AnSets.nRec from Analytic inner loop join AnSets on cAnalyt = Analytic.nRec and set_name = 'Набор1' where Analytic.nRec = 0x8000000000000001 

И получите искомый seek.
Затем сравните по стоимости с исходным запросом и поймете почему оптимизатор не выбрал NL.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Поведение оптимизатора
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]