одна из таблиц синапсов имеет 300 миллионов строк и продолжает увеличиваться. Каждая строка как столбец состояния, т.е. active_row либо 0, либо 1. Active_row имеет тип данных int. Пользователи запрашивают только active_row = 1, который имеет только 28 миллионов строк, а остальные данные, то есть 270 миллионов, неактивны. Чтобы повысить производительность и избежать полного сканирования таблиц на active_row, я преобразовал таблицу в таблицу разделов на active_row, как показано ниже.
CREATE TABLE [repo].[STXXXXX]
WITH
(
DISTRIBUTION = ROUND_ROBIN,
CLUSTERED INDEX (
[ID] ASC
),
PARTITION
(
active_Row RANGE LEFT FOR VALUES (0,1)
)
)
as
select * from repo.nonptxx;
Пользователи сообщили, что после перехода к таблице разделов производительность не улучшилась. когда я проверил приведенный ниже запрос, то есть раздел и не разделение, я не вижу никакой разницы в простом объяснении запроса с точки зрения предполагаемого поддерева, операции и т.д., и вся статистика остается той же цифрой. Из sys.dm_pdw_nodes_db_partition_stats я вижу 3 раздела, созданные на разделе 1, имеющем 270 миллионов данных, разлитых в 60 узлах, и раздел 2 из 60 узлов, 30 миллионов разлитых узлов, а раздел 3 из 60 узлов пуст.
select * from [repo].[STXXXXX] where active_row =1
vs
select * from repo.nonptxx where active_row =1
Посоветуйте, пожалуйста, что не так и почему после перехода в таблицу разделов нет улучшений и как это настроить?