Показать сообщение отдельно
  #21  
Старый 14.10.2009, 18:41
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Поддержка лингвистических индексов



Поддержка лингвистических индексов

Лингвистическая сортировка зависит от языка. Если в БД хранится информация на разных языках, может потребоваться сортировка, учитывающая это. Создание лингвистического индекса для столбцов значительно повышает производительность запросов, требующих лингвистическую сортировку, но замедляет операции вставки и обновления.

Индексы с лингвистическими отсортированными данными создаются как индексы, основанные на функции. SQL-функция NLSSORT сортирует строки байтов, заданные в первом параметре, в соответствии с указанной лингвистической последовательностью. В примере на слайде создается индекс для значений столбца WORD, сортируемых по русскому алфавиту. После этого могут выполняться запросы, использующие индексы со значениями, отсортированными по правилам русского языка.

Можно также создать один лингвистический индекс для всех языков, используя одну из многоязыковых лингвистических сортировок, например, GENERIC_M или FRENCHM. Или же для небольшого множества языков можно использовать столбец, в котором задается язык, передаваемый в качестве параметра функции NLSSORT. Столбец должен содержать значения, соответствующие правильным значениям параметра NLS_LANGUAGE, для индексируемого столбца.


Код:
CREATE INDEX i2 on list   (NLSSORT(word,   1NLS_SORT=GENERIC_M')); 
CREATE INDEX word_all_idx ON
list(NLSSORT(word,   'NLS_SORT=' | |LANG_COL) ) ;
Дополнительные сведения о создании лингвистических индексов см. в документе Oracle Database Globalization Support Guide.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием