Как ограничить длинну индекса?

Shef
Дата: 19.03.2001 16:16:16
Например у меня поле из 1000 символов а мне надо чтобы индексировались тока 100 символов от этого поля, возможно ли такое.
Garya
Дата: 19.03.2001 17:06:45
А какой смысл? Ужели ты полагаешь, что этот индекс сможет использоваться SQL-сервером? Вообще-то в подобных случаях поле разбивают на два, и первое индексируют.
Shef
Дата: 19.03.2001 19:54:13
Или так - возможно ли в ключ включать не все поле а тока какуюто его чаться, так как ключ не может быть больше 900 символов.
cvasil
Дата: 19.03.2001 21:44:22
Обычно делается так: в таблице создается дополнительное поле, содержащее первые n символов от вышеописанного длинного текстового поля, которое заполняется и апдейтится триггером. Индекс стороится по этому укороченному полю.
Garya
Дата: 20.03.2001 16:59:44
Индексы создаются не просто так, а с определенной целью. Обычно они создаются с целью ускорения выборки данных из таблиц, быстрого построения объединений JOIN и т.п. Обычно оптимизатор запросов достаточно грамотно принимает решение о том, нужно ли использовать индексы, и какие именно. Есть подсказки оптимизатору (hints), но средства работы с индексами, подобным тем, какие имеются в XBase-подобных продуктах в TSQL отсутствуют. Просто потому, что они там не нужны.
Замечание. У меня создалось впечатление, что вопрос задал программист, недавно пересевший с какого-нибудь Clippera или FoxPro и привыкший мыслить категориями этих продуктов. Там действительно можно сделать индекс по некоторому вычисляемому выражению, которое в самой таблице вообще ни в одном столбце не фигурирует (или фигурирует как часть какого-нибудь поля).