Языки и параметры сортировки (службы Analysis Services)

Службы Analysis Services поддерживает языки и параметры сортировки, предоставляемые операционными системами Windows Microsoft. Свойства Language и Collation изначально устанавливаются на уровне экземпляра во время установки, но их можно изменить позже на разных уровнях иерархии объектов.

В многомерной модели (и только в ней) эти свойства можно задать для базы данных или куба. Также можно задать их для переводов, создаваемых для объектов в кубе.

При задании Language и Collation либо указываются параметры, используемые моделью данных во время обработки и выполнения запросов, либо (только для многомерных моделей) в модель добавляются переводы, чтобы носители иностранных языков могли работать с моделью на своем родном языке. Можно явным образом задавать свойства Language и Collation для объекта (базы данных, модели или куба) в случаях, когда в среде разработки и на сервере в рабочей среде настроены разные языковые стандарты и требуется, чтобы язык и параметры сортировки соответствовали предполагаемой целевой среде.

В этом разделе содержатся следующие подразделы.

  • Objects that support Language and Collation properties

  • Language support in Analysis Services

  • Collation support in Analysis Services

  • Change the default language or collation on the instance

  • Change the language or collation on a cube

  • Change language or collation within a data model using XMLA

  • Boost performance for English locales through EnableFast1033Locale

  • GB18030 Support in Analysis Services

Объекты, поддерживающие свойства языка и параметров сортировки

Свойства Language и Collation часто используются вместе: там, где можно настроить Language, также можно настроить и Collation.

Можно задать Language и Collation для этих объектов:

  • Экземпляр. Все проекты, развернутые в экземпляре, получат язык и параметры сортировки этого экземпляра, если язык и параметры сортировки не определены. По умолчанию в многомерной модели настройки языка и параметров сортировки пусты. При развертывании проекта результирующая база данных и кубы получают язык и параметры сортировки экземпляра.

    Изначально свойства языка и параметров сортировки задаются во время установки, но администратор может переопределить их в Management Studio. Дополнительные сведения см. в разделе Change the default language or collation on the instance.

  • База данных. Чтобы отменить наследование, можно задать язык и параметры сортировки на уровне проекта, используемого для всех кубов, содержащихся в базе данных. Если не указано иное, все кубы в базе данных получат язык и параметры сортировки, заданные на этом уровне. Если регулярно создавать и развертывать код для разных языков (например, разрабатывать решение на компьютере с китайским языком, но развертывать это решение на сервере во французском филиале), то настройка языка и параметров сортировки на уровне базы данных — это первый и важнейший шаг, позволяющий обеспечить работоспособность решения в целевой среде. Лучше всего задать эти свойства внутри проекта (с помощью команды проекта Изменить базу данных).

  • Измерение базы данных. Свойства Language и Collation доступны в конструкторе для измерения базы данных, настраивать эти свойства для этого объекта не стоит. Измерения базы данных не используются в качестве автономных объектов, поэтому будет трудно, а то и невозможно использовать заданные свойства. В кубе измерение всегда наследует Language и Collation от родительского куба. Все значения, которые могут быть заданы в автономном объекте измерения базы данных, игнорируются.

  • Куб. В качестве основной структуры запросов можно задать язык и параметры сортировки на уровне куба. Так, может потребоваться создать нескольких языковых версий куба, например английскую и китайскую версии, в одном и том же проекте, и у каждого куба будет свой собственный язык и параметры сортировки.

    Язык и параметров сортировки, заданные для куба, используются всеми мерами и измерениями, содержащимися в кубе. Единственный способ более точно настроить параметры сортировки — при создании переводов для атрибута измерения. В противном случае, если нет переводов на уровне атрибута, для всего куба будет только один набор параметров сортировки.

Кроме того, можно установить Language автономно с помощью команды Перевести объект.

Объект перевода создается при добавлении переводов к кубу или к измерению. Language является частью определения перевода. Collation, с другой стороны, устанавливается для куба или элемента более высокого уровня, и является общим для всех переводов. Это видно в XMLA куба, содержащего переводы: вы увидите несколько языковых свойств (по одному для каждого перевода), но только один набор параметров сортировки. Обратите внимание, что существует одно исключение для переводов атрибутов измерений, когда можно переопределить параметры сортировки куба и задать параметры сортировки атрибута, соответствующие исходному столбцу (ядро СУБД поддерживает настройку параметров сортировки для отдельных столбцов, и распространены случаи, когда отдельные переводы настраиваются для получения данных элементов из различных исходных столбцов). Но в других случаях для всех остальных переводов используется только Language без Collation. Дополнительные сведения см. в разделе Переводы (Analysis Services).

Поддержка языков в Analysis Services

Свойство Language задает языковой стандарт объекта, используемый при обработке, в запросах, а также с Captions и Translations для поддержки многоязычных сценариев. Языковые стандарты включают идентификатор языка, например английский, и территорию, например США или Австралию, которая позволяет дополнительно уточнить форматы даты и времени.

На уровне экземпляра это свойство задается при установке и зависит от языка операционной системы Windows Server (один из 37 языков, если установлен языковой пакет). Изменить язык в программе установки невозможно.

После установки можно переопределить Language с помощью страницы свойств сервера в Management Studio или в файле конфигурации msmdsrv.ini. Можно выбрать один из многих других языков, включая все языки, поддерживаемые клиентской ОС Windows. При установке на уровне экземпляра на сервере Language определяет языковой стандарт для всех баз данных, которые развертываются после этого. Например, если задать для Language немецкий язык, то все базы данных, развертываемые в этом экземпляре, получат значение свойства языка 1031: это код немецкого языка.

Значение свойства языка — код языка (LCID)

Допустимые значения включают все коды языков, отображающиеся в раскрывающемся списке. В Management Studio и SQL Server Data Tools коды языковых стандартов представляются в виде строковых эквивалентов. Одни и те же языки отображаются везде, где задано свойство Language, вне зависимости от инструмента. Наличие идентичных списков языков позволит однородно реализовать и проверить переводы во всей модели.

Хотя в службах Analysis Services языки перечислены по алфавиту по их названиям, фактические значения свойств сохраняются в виде кодов языков. При задании свойства языка программно или с помощью файла msmdsrv.ini используйте код языка (LCID) в качестве значения. Код языка (LCID) — это 32-разрядное значение, состоящее из идентификатора языка, идентификатора сортировки и зарезервированных битов. Этот код определяет конкретный язык. В Службы Analysis Services код языка используется для указания выбранного языка для экземпляров и объектов Службы Analysis Services.

Можно задать код языка в шестнадцатеричном или в десятичном формате. Примеры допустимых значений для свойства Язык:

  • 0x0409 или 1033 — английский (США)

  • 0x0411 или 1041 — японский

  • 0x0407 или 1031 — немецкий (Германия)

  • 0x0416 или 1046 — португальский (Бразилия).

Более полный список см. в разделе Идендификаторы языковых стандартов, назначаемые в Майкрософт. Дополнительные сведения см. в разделе Кодировки и кодовые страницы.

ПримечаниеПримечание

Свойство Language не определяет язык, на котором возвращаются системные сообщения и отображаются строки в пользовательском интерфейсе. Ошибки, предупреждения и сообщения локализованы для всех языков, поддерживаемых в Microsoft Office и Office 365, и используются автоматически, когда соединение с клиентом указывает один из поддерживаемых языков.

Поддержка параметров сортировки в Analysis Services

В Службы Analysis Services используются только параметры сортировки Windows и двоичные параметры сортировки. Устаревшие параметры сортировки SQL Server не используются. В кубе применяются единые параметры сортировки для всех компонентов, за исключением переводов на уровне атрибута. Дополнительные сведения об определении переводов атрибутов см. в разделе Переводы (Analysis Services).

Параметры сортировки управляют учетом регистра для всех строк в языках, где различаются заглавные и строчные буквы, кроме идентификаторов объектов. При использовании символов верхнего и нижнего регистра символов в идентификаторе объекта помните, что учет регистра в идентификаторах объектов зависит не от параметров сортировки, а от Службы Analysis Services. Для идентификаторов объектов на английском языке в идентификаторах объектов не учитывается регистр (независимо от параметров сортировки). В языках с кириллическим письмом и в других языках, где различаются строчные и прописные буквы, все наоборот: регистр всегда учитывается. Дополнительные сведения см. в разделе Советы и рекомендации по глобализации (Analysis Services).

Параметры сортировки в Analysis Services совместимы с параметрами сортировки в ядре СУБД SQL Server, если в обоих случаях выбраны одинаковые настройки. Например, если в реляционной БД учитываются диакритические знаки, следует настроить куб таким же образом. Если параметры сортировки не совпадают, могут возникнуть проблемы. Пример и обходные пути см. в разделе Пробелы в строках в формате Юникод обрабатываются по-разному в зависимости от параметров сортировки. Дополнительные сведения о параметрах сортировки и ядре СУБД см. в разделе Поддержка параметров сортировки и Юникода.

Типы параметров сортировки

Службы Analysis Services поддерживают два типа параметров сортировки:

  • параметры сортировки Windows

    Параметры сортировки Windows на основе языковых и культурных характеристик языков. В Windows параметров сортировки больше, чем языковых стандартов (или языков), используемых с ними, поскольку многие языки используют одинаковый алфавит и правила сортировки и сравнения символов. Например, 33 языковых стандарта Windows, включая все стандарты португальского и английского языка для Windows, используют кодовую страницу Latin1 (1252) и следуют общему набору правил сортировки и сравнения символов.

  • Параметры двоичной сортировки (BIN или BIN2)

    При двоичной сортировке выполняется сортировка по кодовым точкам Юникода, а не по языковым значениям. Например, параметры сортировки Latin1_General_BIN и Japanese_BIN дают одинаковые результаты сортировки, если используются с данными в Юникоде. Языковая сортировка может дать результат, подобный aAbBcCdD, но двоичная сортировка выдаст ABCDabcd, поскольку кодовые точки у всех символов верхнего регистра всегда больше, чем у кодовых точек символов нижнего регистра.

Параметры порядка сортировки

Параметры сортировки используются для уточнения правил сортировки и сравнения на основе регистра, диакритических знаков, каны (для японского языка) и ширины. Например, значение по умолчанию свойства конфигурации Collation для служб Службы Analysis Services — Latin1_General_AS_CS, что означает использование параметров сортировки Latin1_General с порядком сортировки, учитывающим диакритические знаки и регистр.

Обратите внимание, что BIN и BIN2 взаимно исключают другие параметры сортировки. Если нужно использовать BIN или BIN2, то отключается учет диакритических знаков. Аналогичным образом, если выбрать BIN2, то параметры учета регистра, диакритических знаков, каны и ширины становятся недоступны.

В следующей таблице описываются параметры порядка сортировки параметров сортировки Windows и связанные суффиксы для служб Службы Analysis Services.

Порядок сортировки (суффикс)

Описание порядка сортировки

Двоичная (_BIN) или BIN2 (_BIN2)

В SQL Server существует два типа двоичной сортировки: старая сортировка BIN и новая сортировка BIN2. При сортировке BIN2 все символы сортируются в соответствии со своими точками кода. При сортировке BIN только первый символ сортируется в соответствии со своей точкой, а остальные символы сортируются по своим байтовым значениям. (Поскольку в архитектуре платформы Intel используется порядок следования байтов от младшего к старшему, символы Юникода всегда хранятся с перестановкой байтов.)

Для двоичных параметров сортировки на основе типов данных Юникода при сортировке данных локаль не учитывается. Например, параметры сортировки Latin_1_General_BIN и Japanese_BIN дают одинаковые результаты сортировки, если используются с данными в Юникоде.

Двоичный порядок сортировки учитывает регистр и диакритические знаки. Двоичный порядок сортировки является самым быстрым. Дополнительные сведения см. в разделе Рекомендации по использованию параметров сортировки BIN и BIN2.

С учетом регистра (_CS)

Различаются буквы верхнего и нижнего регистров. При выборе этого параметра буквы нижнего регистра при сортировке ставятся перед соответствующими буквами верхнего регистра. Можно явным образом указать, что регистр не учитывается, с помощью параметра _CI. Параметры учета регистра для параметров сортировки не применяются для идентификаторов объектов, например для идентификаторов измерений, кубов и других объектов. Дополнительные сведения см. в разделе Советы и рекомендации по глобализации (Analysis Services).

С учетом диакритических знаков (_AS)

Различаются символы с диакритическими знаками и без них. Например, «a» отлично от «ấ». Если этот параметр не выбран, то при сортировке в службах Службы Analysis Services буквы с диакритическими знаками и без них считаются идентичными. Можно явным образом указать, что диакритические знаки не учитываются, с помощью параметра _АI.

С учетом японской азбуки (_KS)

Различаются два вида японской азбуки: хирагана и катакана. Если этот параметр не выбран, при сортировке в службах Службы Analysis Services символы хирагана и катакана считаются идентичными. Для сортировки с учетом типа японской азбуки не существует суффикса порядка сортировки.

С учетом ширины символов (_WS)

Различаются одинаковые символы, представленные одним и двумя байтами. Если этот параметр не выбран, при сортировке в службах Службы Analysis Services однобайтовые и двухбайтовые представления одних и тех же символов считаются идентичными. Для сортировки с учетом ширины символов не существует суффикса порядка сортировки.

Изменение языка по умолчанию и параметров сортировки для экземпляра

Язык по умолчанию и параметры сортировки устанавливаются при установке, но их можно изменить в ходе настройки после установки. Изменение параметров сортировки на уровне экземпляра — непростая задача, для которой действуют следующие требования.

  • Перезапустите службу.

  • Обновите параметры сортировки для существующих объектов. Параметры сортировки наследуются после создания объекта. Последующие изменения параметров сортировки должны выполняться вручную. В разделе Change collation within a data model using XMLA приведены советы о том, как распространить изменения параметров сортировки по всей модели.

  • Заново обработайте разделы и измерения после обновления параметров сортировки.

Чтобы изменить язык по умолчанию или параметры сортировки на уровне сервера, можно использовать SQL Server Management Studio или AMO PowerShell. Кроме того, можно изменить параметры <Language> и <CollationName> в файле msmdsrv.ini, указав код языка.

  1. В Management Studio щелкните правой кнопкой мыши имя сервера | Свойства | Язык и параметры сортировки.

  2. Выберите параметры сортировки. Чтобы выбрать Двоичный или Двоичный 2, сначала снимите флажок С учетом диакритических знаков.

    Обратите внимание, что параметры сортировки и языковые параметры не зависят друг от друга. При изменении параметра значения другого не будут отфильтрованы, чтобы показать распространенные сочетания.

  3. Обновите модель данных для использования новых параметров сортировки (см. следующий раздел).

  4. Перезапустите службу.

Измените язык или параметры сортировки в кубе

  1. В обозревателе решений дважды щелкните куб, чтобы открыть его в конструкторе кубов.

  2. В области "Измерения" или "Меры" выберите узел верхнего уровня. Объектом верхнего уровня для любой области является куб.

  3. В окне "Свойства" задайте Language и Collation. Выбранные значения будут использоваться всеми объектами куба, включая измерения куба и меры, и повлияют на операции обработки и запросов.

    Единственный способ внедрения дополнительных свойств языка и параметров сортировки для объектов в кубе — с помощью переводов. Дополнительные сведения см. в разделе Переводы (Analysis Services).

Изменение языка и параметров сортировки в модели данных с использованием XMLA

Язык и параметры сортировки наследуются после создания объекта. Последующие изменения этих свойств должны выполняться вручную. Для быстрого изменения параметров сортировки нескольких объектов можно использовать команду ALTER в сценарии XMLA.

По умолчанию параметры сортировки на уровне базы данных устанавливаются один раз. Наследование подразумевается для всей иерархии объектов. Если явным образом задать Collation для объектов в кубе, что разрешено для отдельных атрибутов измерения, изменения появятся в определении XMLA. В противном случае будет существовать только свойство параметров сортировки верхнего уровня.

Перед использованием XMLA для изменения существующей базы данных убедитесь, что не возникнет несоответствий между базой данных и исходными файлами, используемыми для ее создания. Например, можно использовать XMLA для быстрого изменения языка или параметра сортировки для экспериментального тестирования, но после этого могут измениться исходные файлы (см. Change the language or collation on a cube), вследствие чего решение будет заново развернуто с помощью уже существующих процедур.

  1. В Management Studio щелкните правой кнопкой мыши базу данных | Внести в сценарий базы данных как | ALTER To | Окно редактора нового запроса.

  2. Найдите и замените существующее значение языка и параметров сортировки на другое значение.

  3. Нажмите клавишу F5, чтобы выполнить скрипт.

  4. Заново обработайте куб.

Повышение производительности для английских языковых стандартов с помощью EnableFast1033Locale

Если в качестве языка по умолчанию для экземпляра служб Службы Analysis Services используется идентификатор для английского языка (США) (0x0409 или 1033), то можно добиться увеличения производительности, задав свойство конфигурации EnableFast1033Locale — дополнительное свойство конфигурации, доступное только для указанного идентификатора языка. Установка значения этого свойства равным true позволяет службам Службы Analysis Services использовать более быстрый алгоритм для хэширования и сравнения строк. Дополнительные сведения о настройке свойств конфигурации см. в разделе Настройка свойств сервера в службах Analysis Services.

Поддержка GB18030 в Analysis Services

GB18030 — это отдельный стандарт, который применяется в Китайской Народной Республике для кодирования китайских иероглифов. В кодировке GB18030 введенные данные могут иметь длину 1, 2 или 4 байт. В службах Analysis Services отсутствует преобразование данных при обработке данных из внешних источников. Данные просто сохраняются в Юникоде. Во время запроса выполняется преобразование GB18030 с помощью клиентских библиотек Analysis Services (в частности, поставщика OLE DB MSOLAP.dll) при возвращении текстовых данных в результатах запроса, в зависимости от параметров клиентской ОС. Ядро СУБД также поддерживает GB18030. Дополнительные сведения см. в разделе Поддержка параметров сортировки и Юникода.

См. также

Основные понятия

Сценарии глобализации для Analysis Services — многомерные

Советы и рекомендации по глобализации (Analysis Services)

Поддержка параметров сортировки и Юникода