powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Индексы и секционированная таблица
4 сообщений из 4, страница 1 из 1
Индексы и секционированная таблица
    #40056570
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет. Подскажите, недавно я занялся вопросом оптимизации ночного расчета, после анализа, пришел к выводу, что узким местом является огромная таблица (матрица), которая в течении расчета обновляется множество раз. Таблица была разделена логически полем PartNumber, по этому полю я и разбил таблицу на партиции. Время расчета сократилось в 2.5 раза.

На таблице создан PK
Теперь я сравниваю в планы запросов, например такие:

Код: sql
1.
2.
SELECT TOP (1000) * FROM [db_Matrix].[dbo].[tblSuperMainFull_V2_nopart] where PartNumber=8
SELECT TOP (1000) * FROM [db_Matrix].[dbo].[tblSuperMainFull_V2] where PartNumber=8



В первом случае оптимизатор выполняет Cluster Index Scan, во втором случае Table Scan.

Но что интересно, что во втором случае он помечает таблицу как Heap.

От сюда и вопрос, почему Heap? На таблице же есть кластерный индекс..

ЗЫ Правильно ли я понимаю, что оптимизатору теперь нет необходимости в индексе по полю PartNumber?
...
Рейтинг: 0 / 0
Индексы и секционированная таблица
    #40056574
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa
Всем привет. Подскажите, недавно я занялся вопросом оптимизации ночного расчета, после анализа, пришел к выводу, что узким местом является огромная таблица (матрица), которая в течении расчета обновляется множество раз. Таблица была разделена логически полем PartNumber, по этому полю я и разбил таблицу на партиции. Время расчета сократилось в 2.5 раза.

На таблице создан PK
Теперь я сравниваю в планы запросов, например такие:

Код: sql
1.
2.
SELECT TOP (1000) * FROM [db_Matrix].[dbo].[tblSuperMainFull_V2_nopart] where PartNumber=8
SELECT TOP (1000) * FROM [db_Matrix].[dbo].[tblSuperMainFull_V2] where PartNumber=8




В первом случае оптимизатор выполняет Cluster Index Scan, во втором случае Table Scan.

Но что интересно, что во втором случае он помечает таблицу как Heap.

От сюда и вопрос, почему Heap? На таблице же есть кластерный индекс..


Если в плане Table Scan, то никакого кластерного индекса на таблице нет.
...
Рейтинг: 0 / 0
Индексы и секционированная таблица
    #40056575
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex,

Действительно, PK создался как некластеризованный.
...
Рейтинг: 0 / 0
Индексы и секционированная таблица
    #40056599
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa,

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


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