Analysis Services では、Microsoft Windows オペレーティング システムによって提供される言語と照合順序がサポートされています。
Language
プロパティと Collation
プロパティは、最初はインストール時にインスタンス レベルで設定されますが、後でオブジェクト階層のさまざまなレベルで変更できます。
多次元モデル (のみ) では、データベースまたはキューブに対してこれらのプロパティを設定できます。また、キューブ内のオブジェクトに対して作成した翻訳に設定することもできます。
Language
とCollation
を設定する場合は、処理とクエリの実行中にデータ モデルで使用される設定を指定するか、(多次元モデルの場合のみ) 複数の翻訳をモデルに用意して、外国語の話者がネイティブ言語でモデルを操作できるようにします。 オブジェクト (データベース、モデル、またはキューブ) に Language
プロパティと Collation
プロパティを明示的に設定することは、開発環境と運用サーバーが異なるロケール用に構成されていて、言語と照合順序が目的のターゲット環境のものと一致することを確認する場合に適しています。
このトピックには、次のセクションが含まれます。
言語と照合順序のプロパティをサポートするオブジェクト
Language
プロパティと Collation
プロパティは、多くの場合、一緒に公開されます。 Language
を設定できる場合は、 Collation
を設定することもできます。
これらのオブジェクトに Language
と Collation
を設定できます。
インスタンス。 インスタンスにデプロイされるすべてのプロジェクトは、言語と照合順序が未定義であると仮定して、インスタンスの言語と照合順序を採用します。 既定では、多次元モデルは言語と照合順序を空のままにします。 プロジェクトが配置されると、結果として得られるデータベースとキューブは、インスタンスの言語と照合順序を取得します。
最初は、言語と照合順序のプロパティはセットアップ中に確立されますが、管理者は Management Studio でそれらをオーバーライドできます。 詳細については、 インスタンスの既定の言語または照合順序の変更を 参照してください。
データベース。 継承を解除するには、データベースに含まれるすべてのキューブで使用されるプロジェクト レベルで言語と照合順序を明示的に設定できます。 特に指定しない限り、データベース内のすべてのキューブは、このレベルで指定した言語と照合順序を取得します。 異なるロケールに定期的にコーディングして展開する場合 (たとえば、中国のコンピューターでソリューションを開発し、フランスの子会社が所有するサーバーに展開する場合)、データベース レベルで言語と照合順序を設定することは、ターゲット環境でソリューションが動作することを保証するための最初の最も重要な手順です。 これらのプロパティを設定する最適な場所は、プロジェクト内にあります (プロジェクトの [データベースの編集] コマンドを使用)。
データベース ディメンション。 デザイナーはデータベース ディメンションの
Language
プロパティとCollation
プロパティを公開しますが、このオブジェクトにプロパティを設定することは役に立ちません。 データベース ディメンションはスタンドアロン オブジェクトとして使用されないため、定義したプロパティを使用することが不可能でないと困難になる可能性があります。 キューブ内のディメンションは、常にキューブの親からLanguage
とCollation
を継承します。 スタンドアロン データベース ディメンション オブジェクトに設定した値は無視されます。キューブ。 主要なクエリ構造として、キューブ レベルで言語と照合順序を設定できます。 たとえば、同じプロジェクト内に、英語と中国語のバージョンなど、キューブの複数の言語バージョンを作成できます。各キューブには独自の言語と照合順序があります。
キューブに設定した言語と照合順序は、キューブに含まれるすべてのメジャーとディメンションで使用されます。 より細かく照合順序プロパティを設定する方法は、ディメンション属性で翻訳を作成する場合に限られます。 それ以外の場合、属性レベルで変換がないと仮定すると、キューブごとに 1 つの照合順序があります。
さらに、Translation オブジェクトにLanguage
単独で設定することもできます。
変換オブジェクトは、キューブまたはディメンションに翻訳を追加するときに作成されます。
Language
は翻訳定義の一部です。
Collation
一方、キューブ以上に設定され、すべての翻訳で共有されます。 これは、翻訳を含むキューブの XMLA で明らかです。複数の言語プロパティ (翻訳ごとに 1 つ) が表示されますが、照合順序は 1 つだけです。 ディメンション属性の変換には例外が 1 つあります。キューブの照合順序をオーバーライドして、ソース列に一致する属性の照合順序を指定できます (データベース エンジンでは、個々の列の照合順序の設定がサポートされており、個々の翻訳を構成してさまざまなソース列からメンバー データを取得するのが一般的です)。 しかし、それ以外の場合は、他のすべての翻訳に対して、 Language
は単独で使用され、 Collation
のコロールは使用されない。 詳細については、 翻訳 (Analysis Services) を参照してください。
Analysis Services での言語サポート
Language
プロパティは、オブジェクトのロケールを設定します。このロケールは、処理中、クエリ中に使用され、多言語シナリオをサポートするためにCaptions
とTranslations
と共に使用されます。 ロケールは、英語などの言語識別子と、日付と時刻の表現をさらに調整する地域 (米国やオーストラリアなど) に基づいています。
インスタンス レベルでは、プロパティはインストール中に設定され、Windows サーバー オペレーティング システムの言語に基づいています (言語パックがインストールされていると仮定すると、37 言語のいずれか)。 [セットアップ] で言語を変更することはできません。
インストール後、Management Studio または msmdsrv.ini 構成ファイルのサーバー プロパティ ページを使用して、 Language
をオーバーライドできます。 Windows クライアントでサポートされているすべての言語を含め、さらに多くの言語から選択できます。 インスタンス レベルで設定すると、サーバー上で、 Language
は、後でデプロイされるすべてのデータベースのロケールを決定します。 たとえば、 Language
をドイツ語に設定した場合、インスタンスにデプロイされるすべてのデータベースの Language プロパティは、ドイツ語の LCID である 1031 になります。
Language プロパティの値はロケール識別子 (LCID) です
有効な値には、ドロップダウン リストに表示されるすべての LCID が含まれます。 Management Studio と SQL Server Data Tools では、LCID は文字列に相当する文字列で表されます。 ツールに関係なく、 Language
プロパティが公開されている場所に同じ言語が表示されます。 同じ言語の一覧を使用すると、モデル全体で一貫して翻訳を実装およびテストできます。
Analysis Services は言語を名前で一覧表示しますが、プロパティに格納される実際の値は LCID です。 プログラムまたは msmdsrv.ini ファイルを使用して言語プロパティを設定する場合は、 ロケール識別子 (LCID) を 値として使用します。 LCID は、言語 ID、並べ替え ID、および特定の言語を識別する予約済みビットで構成される 32 ビットの値です。 Analysis Services では、LCID を使用して、Analysis Services インスタンスとオブジェクトに対して選択した言語を指定します。
LCID は、16 進形式または 10 進形式を使用して設定できます。
Language
プロパティの有効な値の例を次に示します。
0x0409 または 1033 英語 (米国)
日本語: 0x0411 または 1041
0x0407または1031 (ドイツ、ドイツ語)
ポルトガル語 (ブラジル) 0x0416または 1046。
より長いリストを表示するには、「 Microsoft によって割り当てられたロケール ID」を参照してください。 背景の詳細については、「 コード ページ」を参照してください。
注
Language
プロパティは、システム メッセージを返す言語や、ユーザー インターフェイスに表示される文字列を決定しません。 エラー、警告、およびメッセージは、Office および Office 365 でサポートされているすべての言語にローカライズされ、クライアント接続でサポートされているロケールの 1 つが指定されている場合に自動的に使用されます。
Analysis Services での照合順序のサポート
Analysis Services では、Windows 照合順序とバイナリ照合順序のみが使用されます。 従来の SQL Server 照合順序は使用しません。 キューブ内では、属性レベルでの翻訳を除き、1 つの照合順序が全体で使用されます。 属性変換の定義の詳細については、「 翻訳 (Analysis Services)」を参照してください。
照合順序は、オブジェクト識別子を除き、バイカメラル言語スクリプト内のすべての文字列の大文字と小文字の区別を制御します。 オブジェクト識別子で大文字と小文字を使用する場合は、オブジェクト識別子の大文字と小文字の区別が照合順序ではなく Analysis Services によって決定されることを確認してください。 英字スクリプトで構成されたオブジェクト識別子の場合、オブジェクト識別子は常に大文字と小文字が区別されず、照合順序は関係ありません。 キリル言語やその他のバイカメラル言語は逆の処理を行います (常に大文字と小文字が区別されます)。 詳細については、 グローバリゼーションのヒントとベスト プラクティス (Analysis Services) を参照してください。
Analysis Services の照合順序は、各サービスに対して選択した並べ替えオプションでパリティを維持すると仮定して、SQL Server リレーショナル データベース エンジンの照合順序と互換性があります。 たとえば、リレーショナル データベースがアクセントの影響を受けやすい場合は、キューブを同じように構成する必要があります。 照合順序の設定が分岐すると、問題が発生する可能性があります。 例と回避策については、「 Unicode 文字列の空白は照合順序に基づいて異なる処理結果を持つ」を参照してください。 照合順序とデータベース エンジンの詳細については、「 照合順序と Unicode のサポート」を参照してください。
照合順序の種類
Analysis Services では、次の 2 種類の照合順序がサポートされています。
Windows 照合順序
Windows の照合基準は、言語特性と文化的特性に基づいて文字を並べ替えます。 Windows では、多くの言語が一般的なアルファベットと文字の並べ替えや比較の規則を共有しているため、照合順序の数はそれらに使用されるロケール (または言語) の数よりも多くなっています。 たとえば、すべてのポルトガル語と英語の Windows ロケールを含む 33 個の Windows ロケールでは、Latin1 コード ページ (1252) を使用し、文字を並べ替えて比較するための一般的な規則のセットに従います。
バイナリ照合順序 (BIN または BIN2)
バイナリ照合順序は、言語値ではなく Unicode コード ポイントで並べ替えられます。 たとえば、Latin1_General_BINとJapanese_BINでは、Unicode データで使用すると同じ並べ替え結果が得られます。 言語的な並べ替えでは aAbBcCdD のような結果が得られる場合があるのに対し、すべての大文字のコード ポイントが小文字のコード ポイントよりもまとめて高いため、バイナリ並べ替えは ABCDabcd になります。
並べ替え順序のオプション
ソートオプションは、大文字小文字、アクセント、かな、幅の違いに応じてソートと比較ルールを調整するために使用されます。 たとえば、Analysis Services の Collation
設定プロパティの既定値はLatin1_General_AS_CSが指定されており、Latin1_General照合順序が使用されており、アクセントが区別され、大文字と小文字が区別されています。
BIN と BIN2 は他の並べ替えオプションと相互に排他的であることに注意してください。BIN または BIN2 を使用する場合は、[アクセントセンシティブ] の並べ替えオプションをオフにします。 同様に、BIN2 を選択すると、大文字と小文字、アクセント、かな、および幅の区別に関するオプションは使用できません。
次の表では、Analysis Services の Windows 照合順序の並べ替え順序オプションと関連付けられたサフィックスについて説明します。
並べ替え順序 (サフィックス) | 並べ替え順の説明 |
---|---|
バイナリ (_BIN) または BIN2 (_BIN2) | SQL Server には 2 種類のバイナリ照合順序があります。以前の BIN 照合順序と新しい BIN2 照合順序。 BIN2 照合順序では、すべての文字がコード ポイントに従って並べ替えられます。 BIN 照合順序では、最初の文字のみがコード ポイントに従って並べ替えられます。残りの文字はバイト値に従って並べ替えられます。 (Intel プラットフォームは小さなエンディアン アーキテクチャであるため、Unicode コード文字は常にバイト スワップで格納されます)。 Unicode データ型のバイナリ照合順序の場合、ロケールはデータの並べ替えでは考慮されません。 たとえば、Latin_1_General_BINとJapanese_BINは、Unicode データで使用されている場合に同じ並べ替え結果を生成します。 バイナリ並べ替え順では、大文字と小文字が区別され、アクセントが区別されます。 また、バイナリは最速の並べ替え順です。 |
大文字と小文字を区別する (_CS) | 大文字と小文字を区別します。 選択した場合、小文字は大文字のバージョンの前に並べ替えられます。 _CIを指定することで、大文字と小文字の区別を明示的に設定できます。 照合順序固有のケース設定は、ディメンション、キューブ、およびその他のオブジェクトの ID などのオブジェクト識別子には適用されません。 詳細については、 グローバリゼーションのヒントとベスト プラクティス (Analysis Services) を参照してください。 |
アクセントを区別する (_AS) | アクセントのある文字とアクセントのない文字を区別します。 たとえば、'a' は 'ấ' と等しくありません。 このオプションが選択されていない場合、Analysis Services では、並べ替えの際に、アクセント付き文字とアクセントなし文字を同一視します。 _AIを指定することで、アクセントの区別を明示的に設定できます。 |
かなを区別する (_KS) | ひらがなとカタカナの2種類の仮名文字を区別します。 このオプションが選択されていない場合、Analysis Services では、並べ替えの目的でひらがなとカタカナの文字が等しいと見なされます。 かなを区別しない並べ替えにおいて順序サフィックスはありません。 |
文字幅を区別する (_WS) | 1 バイト文字と同じ文字を 2 バイト文字として表すときに区別します。 このオプションが選択されていない場合、Analysis Services では、並べ替えのために、同じ文字の 1 バイト表現と 2 バイト表現が同一であると見なされます。 幅を区別しない並べ替え用の順序サフィックスはありません。 |
インスタンスの既定の言語または照合順序を変更する
既定の言語と照合順序はセットアップ中に確立されますが、インストール後の構成の一部として変更できます。 インスタンス レベルでの照合順序の変更は簡単ではありません。次の要件が伴います。
サービスの再起動。
既存のオブジェクトの照合順序設定を更新します。 照合順序の設定は、オブジェクトの作成時に 1 回継承されます。 照合順序に対する後続の変更は、手動で行う必要があります。 モデル全体に照合順序の変更を反映する方法のヒントについては、「 XMLA を使用してデータ モデル内の言語と照合順序 を変更する」を参照してください。
照合順序の更新後にパーティションとディメンションを再処理します。
SQL Server Management Studio または AMO PowerShell を使用して、サーバー レベルで既定の言語または照合順序を変更できます。 msmdsrv.ini ファイルで<Language>と<CollationName>の設定を変更し、言語の LCID を指定することもできます。
Management Studio で、サーバー名 | を右クリックします。 プロパティ | 言語/照合順序。
並べ替えオプションを選択します。 [バイナリ] または [バイナリ 2] を選択するには、まず [アクセントセンシティブ] チェック ボックスをオフにします。
照合順序と言語は完全に独立した設定であることに注意してください。 1 つを変更した場合、一般的な組み合わせを表示するために、もう一方の値はフィルター処理されません。
新しい照合順序を使用するようにデータ モデルを更新します (次のセクションを参照)。
サービスを再起動します。
キューブの言語または照合順序を変更する
ソリューション エクスプローラーで、キューブをダブルクリックしてキューブ デザイナーで開きます。
[メジャー] ペインまたは [ディメンション] ペインで、上部のノードを選択します。 どちらのペインの最上位オブジェクトもキューブです。
[プロパティ] で、
Language
とCollation
を設定します。 選択した値は、キューブ ディメンションやメジャーを含むすべてのキューブ オブジェクトによって使用され、処理とクエリ操作に影響します。キューブ内のオブジェクトに代替言語と照合順序のプロパティを埋め込む唯一の方法は、翻訳です。 詳細については、 翻訳 (Analysis Services) を参照してください。
XMLA を使用してデータ モデル内の言語と照合順序を変更する
言語と照合順序の設定は、オブジェクトの作成時に 1 回継承されます。 これらのプロパティに対する後続の変更は、手動で行う必要があります。 照合順序を複数のオブジェクトをすばやく変更する方法の 1 つは、XMLA スクリプトで ALTER コマンドを使用することです。
既定では、照合順序はデータベース レベルで 1 回設定されます。 継承は、オブジェクト階層の残りの部分で暗黙的に行われます。 個々のディメンション属性で許可されているキューブ内のオブジェクトに対して Collation
を明示的に設定すると、XMLA 定義に表示されます。 それ以外の場合は、最上位の照合順序プロパティのみが存在します。
XMLA を使用して既存のデータベースを変更する前に、データベースとビルドに使用されるソース ファイルの間に不一致が生じないようにしてください。 たとえば、XMLA を使用して概念実証テストのために言語または照合順序をすばやく変更し、ソース ファイルの変更をフォローアップして ( キューブの言語または照合順序の変更を参照)、既に配置されている既存の操作手順を使用してソリューションを再デプロイすることができます。
Management Studio で、データベースを右クリックします 。データベースをスクリプトとして | ALTER To | [新しいクエリ エディター] ウィンドウ。
既存の言語または照合順序を検索し、別の値に置き換えます。
F5 キーを押してスクリプトを実行します。
キューブを再処理します。
EnableFast1033Locale を使用して英語ロケールのパフォーマンスを向上させる
Analysis Services インスタンスの既定の言語として英語 (米国) 言語識別子 (0x0409、または 1033) を使用する場合は、 EnableFast1033Locale
構成プロパティ (その言語識別子でのみ使用できる高度な構成プロパティ) を設定することで、パフォーマンス上の利点を得ることができます。 このプロパティの値を true に設定すると、Analysis Services では、文字列ハッシュと比較に高速アルゴリズムを使用できます。 構成プロパティの設定の詳細については、「 Analysis Services でのサーバー プロパティの構成」を参照してください。
Analysis Services でのGB18030サポート
GB18030は、中国語の文字をエンコードするために中華人民共和国で使用される別の標準です。 GB18030 文字の長さは 1 バイト、2 バイト、4 バイトのいずれかです。 Analysis Services では、外部ソースからのデータを処理するときにデータ変換はありません。 データは単に Unicode として格納されます。 クエリ時に、GB18030変換は、クライアント OS の設定に基づいてクエリ結果でテキスト データが返されるときに、Analysis Services クライアント ライブラリ (具体的には、MSOLAP.dll OLE DB プロバイダー) を介して実行されます。 データベース エンジンでは、GB18030もサポートされています。 詳細については、「 照合順序と Unicode のサポート」を参照してください。
こちらもご覧ください
Analysis Services Multiidimensional のグローバリゼーション シナリオ
グローバリゼーションのヒントとベスト プラクティス (Analysis Services)
照合順序と Unicode のサポート