Compartilhar via


Idiomas e convenções de classificação (Analysis Services)

O Analysis Services dá suporte aos idiomas e ordenações fornecidos pelos sistemas operacionais Microsoft Windows. Language e Collation as propriedades são inicialmente definidas no nível da instância durante a instalação, mas podem ser alteradas posteriormente em diferentes níveis da hierarquia de objetos.

Em um modelo multidimensional (somente), você pode definir essas propriedades em um banco de dados ou cubo . Você também pode defini-las em traduções criadas para objetos dentro de um cubo.

Ao definir Language e Collationespecificar as configurações usadas pelo modelo de dados durante o processamento e a execução da consulta ou (somente para modelos multidimensionais), você está equipando um modelo com várias traduções para que os falantes de idiomas estrangeiros possam trabalhar com o modelo em seu idioma nativo. Definir explicitamente propriedades Language e Collation em um objeto (banco de dados, modelo ou cubo) é destinado a situações onde o ambiente de desenvolvimento e o servidor de produção estão configurados para diferentes localidades, e você deseja garantir que o idioma e a ordenação correspondam ao do ambiente de destino pretendido.

Este tópico inclui estas seções:

Objetos que dão suporte a propriedades de linguagem e ordenação

Language e Collation as propriedades geralmente são expostas juntas , onde você pode definir Language, você também pode definir Collation.

Você pode definir Language e Collation nestes objetos:

  • Instância. Todos os projetos implantados na instância adotarão o idioma e a ordenação da instância, caso o idioma e a ordenação estejam indefinidos. Por padrão, um modelo multidimensional deixa a linguagem e a ordenação vazias. Quando o projeto é implantado, o banco de dados e os cubos resultantes adquirem o idioma e a ordenação da instância.

    Inicialmente, as propriedades de linguagem e ordenação são estabelecidas durante a instalação, mas um administrador pode substituí-las no Management Studio. Consulte Alterar o idioma ou ordenação padrão na instância para obter detalhes.

  • Base de dados. Para interromper a herança, você pode definir explicitamente o idioma e a ordenação no nível do projeto que são usados por todos os cubos contidos no banco de dados. A menos que você indique o contrário, todos os cubos no banco de dados obterão o idioma e a ordenação especificados nesse nível. Se você codificar e implantar rotineiramente em diferentes localidades (por exemplo, desenvolvendo a solução em um computador chinês, mas implantando-a em um servidor de propriedade de uma subsidiária francesa), definir idioma e ordenação no nível do banco de dados é a primeira e mais importante etapa para garantir que a solução funcione no ambiente de destino. O melhor lugar para definir essas propriedades é dentro do projeto (por meio do comando Editar Banco de Dados no projeto).

  • Dimensão do banco de dados. Embora o designer exponha Language e Collation as propriedades em uma dimensão de banco de dados, definir propriedades nesse objeto não é útil. As dimensões do banco de dados não são usadas como objetos autônomos, portanto, pode ser difícil, se não impossível, usar as propriedades definidas. Quando em um cubo, uma dimensão sempre herda Language e Collation de seu pai cubo. Todos os valores que você pode ter definido no objeto de dimensão de banco de dados autônomo são ignorados.

  • Cubo. Como estrutura principal de consulta, você pode definir a linguagem e a ordenação no nível do cubo. Por exemplo, talvez você queira criar várias versões de idioma de um cubo, como versões em inglês e chinês, dentro do mesmo projeto, em que cada cubo tem seu próprio idioma e ordenação.

    Qualquer linguagem e ordenação definidas no cubo são usadas por todas as medidas e dimensões contidas no cubo. A única maneira de definir as propriedades de ordenação em um nível mais detalhado é se você estiver criando traduções de um atributo de dimensão. Caso contrário, supondo que não haja traduções no nível do atributo, há uma ordenação por cubo.

Além disso, você pode definir Language, por si só, em um objeto Translation .

Um objeto de tradução é criado quando você adiciona traduções a um cubo ou dimensão. Language faz parte da definição de tradução. Collation, por outro lado, é definido no nível do cubo ou superior e compartilhado por todas as traduções. Isso é evidente no XMLA de um cubo que contém traduções, em que você verá várias propriedades de idioma (uma para cada tradução), mas apenas uma ordenação. Observe que há uma exceção para traduções de atributo de dimensão, em que você pode substituir a ordenação de cubo para especificar uma ordenação de atributo que corresponda à coluna de origem (o mecanismo de banco de dados dá suporte à definição de ordenação em colunas individuais e é comum configurar traduções individuais para obter dados de membro de colunas de origem diferentes). Mas, caso contrário, para todas as outras traduções, Language é usado por si só, sem um Collation corolário. Consulte Traduções (Analysis Services) para obter detalhes.

Suporte à linguagem no Analysis Services

A Language propriedade define a localidade de um objeto, usada durante o processamento, consultas e com Captions e Translations para dar suporte a cenários multilíngues. As localidades são baseadas em um identificador de idioma, como inglês, e em um território, como Estados Unidos ou Austrália, que refina ainda mais as representações de data e hora.

No nível da instância, a propriedade é definida durante a instalação e se baseia no idioma do sistema operacional windows server (um dos 37 idiomas, supondo que um pacote de idiomas esteja instalado). Não é possível alterar o idioma na Instalação.

Após a instalação, você pode substituir Language usando a página de propriedades do servidor no Management Studio ou no arquivo de configuração msmdsrv.ini. Você pode escolher entre muitos outros idiomas, incluindo todos os compatíveis com o cliente Windows. Quando definido no nível da instância, no servidor, Language determina a localidade de todos os bancos de dados que são implantados posteriormente. Por exemplo, se você definir Language como alemão, todos os bancos de dados implantados na instância terão uma propriedade Language 1031, a LCID para alemão.

O valor da propriedade Language é um LCID (Identificador de Localidade)

Os valores válidos incluem qualquer LCID exibido na lista suspensa. No Management Studio e no SQL Server Data Tools, as LCIDs são representadas em equivalentes de cadeia de caracteres. Os mesmos idiomas aparecem onde quer que a Language propriedade seja exposta, independentemente da ferramenta. Ter uma lista idêntica de idiomas garante que você possa implementar e testar traduções consistentemente em todo o modelo.

Embora o Analysis Services liste os idiomas por nome, o valor real armazenado para a propriedade é um LCID. Ao definir uma propriedade de idioma programaticamente ou por meio do arquivo msmdsrv.ini, use o LCID (identificador de localidade) como o valor. Um LCID é um valor de 32 bits que consiste em uma ID de idioma, ID de classificação e bits reservados que identificam um idioma específico. O Analysis Services usa LCIDs para especificar o idioma selecionado para instâncias e objetos do Analysis Services.

Você pode definir o LCID usando formatos hexadecimal ou decimal. Alguns exemplos de valores válidos para a Language propriedade incluem:

  • 0x0409 ou 1033 para inglês (Estados Unidos)

  • 0x0411 ou 1041 para japonês

  • 0x0407 ou 1031 para Alemanha (Alemão)

  • 0x0416 ou 1046 para português (Brasil).

Para exibir uma lista mais longa, consulte IDs de localidade atribuídas pela Microsoft. Para obter mais informações em segundo plano, consulte Páginas de Código.

Observação

A Language propriedade não determina o idioma para retornar mensagens do sistema ou quais cadeias de caracteres aparecem na interface do usuário. Erros, avisos e mensagens são localizados em todos os idiomas com suporte no Office e no Office 365 e são usados automaticamente quando a conexão do cliente especifica uma das localidades com suporte.

Suporte à ordenação no Analysis Services

Analysis Services usa Windows e ordenações binárias exclusivamente. Ele não usa classificações herdadas do SQL Server. Dentro de um cubo, uma única classificação é usada por toda parte, com exceção das traduções no nível do atributo. Para obter mais informações sobre como definir traduções de atributo, consulte Traduções (Analysis Services).

As ordenações controlam a distinção entre maiúsculas e minúsculas de todas as cadeias de caracteres em scripts de escrita dupla, com exceção dos identificadores de objeto. Se você usar caracteres maiúsculas e minúsculas em um identificador de objeto, será avisado previamente que a diferenciação de maiúsculas e minúsculas dos identificadores de objeto não é determinada pela ordenação, mas pelo Analysis Services. Para identificadores de objeto compostos em script em inglês, os identificadores de objeto são sempre insensíveis a maiúsculas e minúsculas, independentemente da classificação ou agrupamento. Cirílico e outros alfabetos bicamerais fazem o oposto (sempre distinguem maiúsculas de minúsculas). Consulte dicas de globalização e práticas recomendadas (Analysis Services) para obter detalhes.

A ordenação no Analysis Services é compatível com a do mecanismo de banco de dados relacional do SQL Server, supondo que você mantenha a paridade nas opções de classificação selecionadas para cada serviço. Por exemplo, se o banco de dados relacional for sensível a acentuação, você deverá configurar o cubo da mesma maneira. Problemas podem ocorrer quando as configurações de ordenações divergem. Para obter um exemplo e soluções alternativas, consulte Blanks em uma cadeia de caracteres Unicode têm diferentes resultados de processamento dependendo da ordenação. Para saber mais sobre a ordenação e o mecanismo de banco de dados, consulte o Suporte de Ordenação e Unicode.

Tipos de ordenação

O Analysis Services dá suporte a dois tipos de ordenação:

  • Ordenações do Windows

    As ordenações do Windows classificam caracteres com base nas características linguísticas e culturais da língua. No Windows, as ordenações superam em número as localidades (ou idiomas) usados com eles, devido a muitas linguagens compartilhando alfabetos e regras comuns para classificar e comparar caracteres. Por exemplo, 33 localidades do Windows, incluindo todas as localidades do Windows em português e inglês, usam a página de código latin1 (1252) e seguem um conjunto comum de regras para classificar e comparar caracteres.

  • Classificações binárias (BIN ou BIN2)

    Ordenações binárias classificam em pontos de código Unicode, não em valores linguísticos. Por exemplo, Latin1_General_BIN e Japanese_BIN produzem resultados de classificação idênticos quando usados em dados Unicode. Enquanto uma classificação linguística pode produzir resultados como aAbBcCdD, uma classificação binária seria ABCDabcd porque o ponto de código de todos os caracteres maiúsculos é coletivamente maior do que os pontos de código dos caracteres minúsculos.

Opções de ordem de classificação

As opções de classificação são usadas para refinar regras de classificação e comparação com base na diferenciação de maiúsculas e minúsculas, ênfase, kana e largura. Por exemplo, o valor padrão da propriedade de configuração Collation do Analysis Services é Latin1_General_AS_CS, especificando que a intercalação Latin1_General é usada, com uma ordem sensível a acentos e a maiúsculas e minúsculas.

Observe que BIN e BIN2 são mutuamente exclusivos em relação às outras opções de ordenação; se você quiser usar BIN ou BIN2, desmarque a opção de ordenação para Sensibilidade a Acentos. Da mesma forma, quando BIN2 é selecionado, as opções que diferenciam maiúsculas de minúsculas, que não diferenciam maiúsculas de minúsculas, sensíveis a acentos, não sensíveis a acentos, sensíveis a kana e sensíveis à largura não estão disponíveis.

A tabela a seguir descreve as opções de ordem de classificação de ordenação do Windows e os sufixos associados para o Analysis Services.

Ordem de classificação (sufixo) Descrição da ordem de classificação
Binário (_BIN) ou BIN2 (_BIN2) Há dois tipos de ordenações binárias no SQL Server; as ordenações BIN mais antigas e as ordenações BIN2 mais recentes. Em uma ordenação BIN2, todos os caracteres são classificados de acordo com seus pontos de código. Em uma ordenação BIN, apenas o primeiro caractere é classificado de acordo com o ponto de código e os caracteres restantes são classificados de acordo com seus valores de bytes. (Como a plataforma Intel é uma arquitetura pouco endiana, os caracteres de código Unicode são sempre armazenados com troca de bytes.)

Para ordenações binárias em tipos de dados Unicode, a localidade não é considerada em classificações de dados. Por exemplo, Latin_1_General_BIN e Japanese_BIN produzem resultados de classificação idênticos quando são usados em dados Unicode.

A ordem de classificação binária faz distinção entre maiúsculas e minúsculas e acentuação. Binário é também a ordem de classificação mais rápida.
Sensível a maiúsculas e minúsculas (_CS) Faz distinção entre letras maiúscula e minúsculas. Se selecionado, as letras minúsculas são ordenadas antes de suas versões maiúsculas. Você pode definir explicitamente a insensibilidade a maiúsculas e minúsculas especificando _CI. Configurações específicas de collation não se aplicam a identificadores de objeto, como o ID de uma dimensão, de um cubo e de outros objetos. Consulte dicas de globalização e práticas recomendadas (Analysis Services) para obter detalhes.
Sensível a acentos (_AS) Faz distinção entre caracteres acentuados e não acentuados. Por exemplo, 'a' não é igual a 'ấ'. Se essa opção não estiver selecionada, o Analysis Services considerará que as versões acentuadas e não acentuadas das letras serão idênticas para fins de classificação. Você pode definir explicitamente a insensibilidade de acento especificando _AI.
Sensibilidade ao kana (_KS) Distingue entre os dois tipos de caracteres kana japoneses: hiragana e katakana. Se essa opção não estiver selecionada, o Analysis Services considerará os caracteres hiragana e katakana iguais para fins de classificação. Não há sufixo de ordem de classificação para classificação sem diferenciação de kana.
Sensível à largura (_WS) Distingue entre um caractere de byte único e o mesmo caractere quando representado como um caractere de byte duplo. Se essa opção não estiver selecionada, o Analysis Services considerará que a representação de byte único e de byte duplo do mesmo caractere será idêntica para fins de classificação. Não há sufixo de ordem de classificação para ordenação insensível à largura.

Alterar o idioma ou ordenação padrão na instância

O idioma e a ordenação padrão são estabelecidos durante a instalação, mas podem ser alterados como parte da configuração pós-instalação. Modificar a ordenação no nível da instância não é trivial e tem as seguintes implicações:

  • Uma reinicialização de serviço.

  • Atualize as configurações de ordenação de objetos existentes. As configurações de ordenação são herdadas uma única vez, no momento em que o objeto é criado. As alterações subsequentes na ordenação devem ser feitas manualmente. Veja Como alterar a linguagem e ordenar dentro de um modelo de dados usando XMLA para obter dicas sobre como propagar mudanças de ordenação em todo o modelo.

  • Reprocesse partições e dimensões após a atualização da ordenação.

Você pode usar o SQL Server Management Studio ou o AMO PowerShell para alterar o idioma ou ordenação padrão no nível do servidor. Como alternativa, você pode modificar as <configurações de Idioma> e <CollationName> no arquivo msmdsrv.ini, especificando o LCID do idioma.

  1. No Management Studio, clique com o botão direito do mouse no nome do servidor | Propriedades | Idioma/ordenação.

  2. Escolha as opções de classificação. Para selecionar Binário ou Binário 2, primeiro desmarque a caixa de seleção para Sensível a Acentos.

    Observe que a ordenação e o idioma são configurações totalmente independentes. Se você alterar um, os valores do outro não serão filtrados para mostrar combinações comuns.

  3. Atualize o modelo de dados para usar a nova ordenação (consulte a seção a seguir).

  4. Reinicie o serviço.

Alterar o idioma ou a ordenação de um cubo

  1. No Gerenciador de Soluções, clique duas vezes no cubo para abri-lo no designer de cubo.

  2. No painel Medidas ou Dimensões, selecione o nó superior. O objeto de nível superior para um dos painéis é o cubo.

  3. Em Propriedades, definir Language e Collation. Os valores escolhidos serão usados por todos os objetos de cubo, incluindo dimensões e medidas de cubo, e afetarão o processamento e as operações de consulta.

    A única maneira de inserir propriedades alternativas de linguagem e ordenação em objetos dentro do cubo é por meio de traduções. Consulte Traduções (Analysis Services) para obter detalhes.

Alterar linguagem e ordenação em um modelo de dados usando XMLA

As configurações de linguagem e ordenação são herdadas uma vez quando o objeto é criado. As alterações subsequentes nessas propriedades devem ser feitas manualmente. Uma abordagem para alterar a ordenação de vários objetos rapidamente é usar um comando ALTER em um script XMLA.

Por padrão, a ordenação é definida uma vez, no nível do banco de dados. A herança está implícita em todo o restante da hierarquia de objetos. Se você definir Collation explicitamente em objetos dentro do cubo, o que é permitido em atributos de dimensão individuais, ele aparecerá na definição XMLA. Caso contrário, existe apenas a propriedade de ordenação de nível superior.

Antes de usar o XMLA para modificar um banco de dados existente, verifique se você não está introduzindo discrepâncias entre o banco de dados e os arquivos de origem usados para compilá-lo. Por exemplo, talvez você queira usar o XMLA para alterar rapidamente o idioma ou a ordenação para testes de prova de conceito, mas, em seguida, acompanhar as alterações no arquivo de origem (consulte Alterar o idioma ou ordenação em um cubo), reimplantando a solução usando os procedimentos operacionais existentes já em vigor.

  1. No Management Studio, clique com o botão direito do mouse no banco de dados | Scriptar Banco de Dados como | ALTERAR Para | Nova janela do Editor de Consultas.

  2. Pesquise e substitua o idioma ou ordenação existente por um valor alternativo.

  3. Pressione F5 para executar o script.

  4. Reprocesse o cubo.

Aumentar o desempenho das localidades em inglês por meio de EnableFast1033Locale

Se você usar o identificador de idioma inglês (Estados Unidos) (0x0409 ou 1033) como o idioma padrão para a instância do Analysis Services, poderá obter benefícios de desempenho adicionais definindo a EnableFast1033Locale propriedade de configuração, uma propriedade de configuração avançada disponível apenas para esse identificador de idioma. Definir o valor dessa propriedade como true permite que o Analysis Services use um algoritmo mais rápido para hash de cadeia de caracteres e comparação. Para obter mais informações sobre como definir propriedades de configuração, consulte Configurar propriedades do servidor no Analysis Services.

Suporte GB18030 nos Analysis Services

GB18030 é um padrão separado usado na República Popular da China para codificar caracteres chineses. Em GB18030, caracteres podem ter 1, 2 ou 4 bytes em comprimento. No Analysis Services, não há conversão de dados ao processar dados de fontes externas. Os dados são simplesmente armazenados como Unicode. No momento da consulta, uma conversão de GB18030 é executada por meio das bibliotecas de clientes do Analysis Services (especificamente, o provedor MSOLAP.dll OLE DB) quando os dados de texto são retornados nos resultados da consulta, com base nas configurações do sistema operacional cliente. O mecanismo de banco de dados também dá suporte a GB18030. Para obter detalhes, consulte Colação e Suporte Unicode.

Consulte Também

Cenários de globalização para o Analysis Services Multiidimensional
Dicas de globalização e práticas recomendadas (Analysis Services)
Suporte a ordenações e a Unicode