... точнее с его отображением.
Преамбула:
Имеется Microsoft SQL Server 2014 (SP2-CU1) (KB3178925) - 12.0.5511.0 (X64)
Aug 19 2016 14:32:30
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)
Имеется секционированная таблица-хранилище.
При попытке отобразить эстимейтед план запроса к хранилищу, причем запрос полностью укладывается в некий индекс, оптимизатор выдает предупреждение, что "хорошо бы использовать такой-то покрывающий индекс".
Причем индекс именно с такими параметрами на таблице есть. И именно он в плане запроса отображается.
Если добавить к запросу Option (recompile), то отображается точно такой же план (с точно таким же предполагаемым количеством строк и, на первый взгляд, теми же операциями на тех же индексах), но уже без зеленой подсказки "создайте индекс".
Выполняются запросы и вроде бы одинаково.
В чем может быть дело???
На таблице есть множество индексов, но все они выровнены по партициям, и для них указано STATISTICS_INCREMENTAL=ON, в т.ч. для кластерного индекса.
При подгрузке данных в хранилище данные сначала грузятся в таблицу-близнец с той же структурой индексов (но отключенных).
Потом индексы включаются (Alter index All REBUILD), потом делается swap partition, потом уже в целевой таблице на соответствующей партиции делается UPDATE STATISTICS WITH RESAMPLE для каждой инкрементальной статистики (и для индексов, и для созданных вручную статистик по полям).
Автообновление и автосоздание статистик отключено.
Чувствую, засада именно в этом.
Что я мог упустить, не подскажите?
Преамбула:
Имеется Microsoft SQL Server 2014 (SP2-CU1) (KB3178925) - 12.0.5511.0 (X64)
Aug 19 2016 14:32:30
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)
Имеется секционированная таблица-хранилище.
При попытке отобразить эстимейтед план запроса к хранилищу, причем запрос полностью укладывается в некий индекс, оптимизатор выдает предупреждение, что "хорошо бы использовать такой-то покрывающий индекс".
Причем индекс именно с такими параметрами на таблице есть. И именно он в плане запроса отображается.
Если добавить к запросу Option (recompile), то отображается точно такой же план (с точно таким же предполагаемым количеством строк и, на первый взгляд, теми же операциями на тех же индексах), но уже без зеленой подсказки "создайте индекс".
Выполняются запросы и вроде бы одинаково.
В чем может быть дело???
На таблице есть множество индексов, но все они выровнены по партициям, и для них указано STATISTICS_INCREMENTAL=ON, в т.ч. для кластерного индекса.
При подгрузке данных в хранилище данные сначала грузятся в таблицу-близнец с той же структурой индексов (но отключенных).
Потом индексы включаются (Alter index All REBUILD), потом делается swap partition, потом уже в целевой таблице на соответствующей партиции делается UPDATE STATISTICS WITH RESAMPLE для каждой инкрементальной статистики (и для индексов, и для созданных вручную статистик по полям).
Автообновление и автосоздание статистик отключено.
Чувствую, засада именно в этом.
Что я мог упустить, не подскажите?