Изменились ли SQL Server 2019 и Azure в некластеризованном индексировании или нет
Такое поведение старше многих людей на этом сайте.
Из-за этого мы привыкли отделять PK от кластеризованных
Это почти всегда ненужная микрооптимизация.
Кучи вообще не имеют ключа/ключей кластеризации, каков способ индексации в кучах
Некластеризованные неуникальные индексы всегда имеют локатор строк в качестве ключей индекса. Для куч локатором строк является ROWID (FileNo, PageNo, SlotNo).
Если вы хотите переместить строки с конечного уровня вашего широкого ПК, это обычно для очень большой таблицы. Поэтому перемещение строк в кластеризованный индекс columstore может быть хорошим вариантом. Для этого просто удалите кластеризованный ПК (при этом конечный уровень останется в виде кучи), создайте CCI, а затем заново создайте ПК как некластеризованный ПК. например
drop table if exists t
go
create table t(id int not null, a int, b int)
alter table t
add constraint pk_t
primary key clustered(id)
go
alter table t drop constraint pk_t
create clustered columnstore index cci_t on t
alter table t
add constraint pk_t
primary key nonclustered (id)
И если у вас есть другие некластеризованные индексы, сначала удалите их и воссоздайте послесловие только в том случае, если вам это действительно нужно. Уникальные индексы IE, индексы, поддерживающие внешний ключ, или индексы должны поддерживать определенные запросы. CCI обычно не нуждается в большом количестве индексов, так как он очень эффективен для сканирования.
person
David Browne - Microsoft
schedule
16.06.2020
EXEC('DBCC IND([OutputTableName], "[yourtable]" , index you interested in) Select [IndexLevel],[PagePID] From [IndexPagesOutput] Order BY [IndexLevel] DESC
, чтобы найти свою корневую страницу, затемDBCC TRACEON (3604); DBCC PAGE(OutputTableName , 1 , root page number , index you interested in)
это ваша корневая страница, и на этой странице вы может видеть ваш неуникальный некластеризованный индекс и ключ кластеризованного индекса, который вы используете - person ali tekrar   schedule 16.06.2020