Создание non-clustered index
в столбцах с varchar(max)
запрещено в sql server
.
Итак, на какой максимальной varchar
длине можно non-clustered index
создать?
Создание non-clustered index
в столбцах с varchar(max)
запрещено в sql server
.
Итак, на какой максимальной varchar
длине можно non-clustered index
создать?
Длина ключевого столбца не должна превышать 900 байт, но для sqlserver 2016 cu2 это 1700 байт.
Вы можете включить максимальное количество столбцов как включенное, но они не должны быть частью ключевых столбцов.
create table t1
(
col1 varchar(1700),
id varchar(max)
)
create index nc on t1(col1)
include (id)
Чтобы добавить, из SQLServer 2012 вы также можете перестроить столбцы индекса, которые относятся к типу LOB, хотя текст, ntext и изображение не поддерживаются.
Ремус Русану ведет хороший блог о том, почему в более ранних версиях 2012 года не поддерживались операции перестроения индекса в Интернете.
Дополнительная литература:
varchar (max) везде?
Операции с онлайн-индексами для индексов, содержащих столбцы LOB < / а>
like
и в указанном выше случае, поскольку столбец включен в список ... даже без использования like
sql может сканировать общий некластеризованный индекс
- person TheGameiswar; 01.03.2018
Максимальное количество байтов для некластеризованного индекса (до 2016 г.) - 900:
https://docs.microsoft.com/en-us/sql/sql-server/maximum-capacity-specifications-for-sql-server
Итак, попробуйте VARCHAR (900) и сообщите нам, как у вас дела.