共用方式為


語言和定序 (Analysis Services)

適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

SQL Server Analysis Services 支援Microsoft Windows 操作系統所提供的語言和定序。 Language定序 屬性一開始會在安裝期間於實例層級設定,但之後可以在物件階層的不同層級變更。

在多維度模型中(僅限),您可以在資料庫或 Cube 上設定這些屬性-您也可以在 Cube 內為物件建立的翻譯上設定這些屬性。 在表格式模型中,語言和定序繼承自主機操作系統。

在多維度模型中設定語言 語言定序 時,您可以指定數據模型在處理和查詢執行期間所使用的設定,或是為模型提供多個翻譯,讓外語說話者可以使用其原生語言的模型。 明確設定 語言定序 物件屬性(資料庫、模型或 Cube)是針對不同地區設定開發環境和生產伺服器的情況,而且您想要確定語言和定序符合預期目標環境的屬性。

支援語言和定序屬性的物件

語言定序 屬性通常會一起公開-您可以在其中設定 語言,您也可以設定 定序

您可以在這些物件上設定 Language定序

  • 實體。 部署至實例的所有專案都會採用 實例的語言和定序,假設未定義語言和定序。 根據預設,多維度模型會保留語言和定序空白。 部署專案時,產生的資料庫和 Cube 會取得 實例的語言和定序。

    一開始,語言和定序屬性會在安裝期間建立,但系統管理員可以在Management Studio 中覆寫它們。 如需詳細資訊,請參閱 變更實例上的默認語言或定序

  • 資料庫。 若要中斷繼承,您可以在資料庫內含的所有 Cube 所使用的專案層級明確設定語言和定序。 除非您另有指示,否則資料庫中的所有 Cube 都會取得您在這個層級指定的語言和定序。 如果您經常撰寫程式代碼並部署到不同的地區設定(例如,在中文計算機上開發解決方案,但將其部署至法文子公司所擁有的伺服器),請在資料庫層級設定語言和定序是確保解決方案在目標環境中運作的第一個最重要的步驟。 設定這些屬性的最佳位置是在專案內(透過專案上的 編輯資料庫 命令)。

  • 資料庫維度。 雖然設計工具會在資料庫維度上公開 Language定序 屬性,但在此對象上設定屬性並無用處。 資料庫維度不會當做獨立物件使用,因此,如果不不可能使用您定義的屬性,就可能很困難。 在 Cube 中時,維度一律會從其 Cube 父代繼承 語言定序。 您可以忽略您在獨立資料庫維度物件上設定的任何值。

  • Cube。 做為主要查詢結構,您可以在 Cube 層級設定語言和定序。 例如,您可能想要在相同的專案中建立多個語言版本的 Cube,例如英文和中文版本,其中每個 Cube 都有自己的語言和定序。

    您在 Cube 上設定的任何語言和定序,都會由 Cube 中包含的所有量值和維度使用。 在更精細的粒紋上設定定序屬性的唯一方法是,如果您要在維度屬性上建立翻譯。 否則,假設屬性層級沒有翻譯,則每個 Cube 都有一個定序。

此外,您可以在 Translation 物件上單獨設定 Language

當您將翻譯新增至 Cube 或維度時,會建立翻譯物件。 Language 是翻譯定義的一部分。 另一方面,定序會設定在 Cube 或更新版本上,並由所有翻譯共用。 這在包含翻譯的 Cube XMLA 中很明顯,您會在其中看到多個語言屬性(每個翻譯各一個),但只有一個定序。 請注意,維度屬性轉譯有一個例外狀況,您可以在其中覆寫 Cube 定序來指定符合源數據行的屬性定序(資料庫引擎支援在個別數據行上設定定序,而且通常會設定個別翻譯,以從不同的源數據行取得成員數據)。 但否則,對於所有其他翻譯,語言 本身會使用,而不需要 定序 標籤。 如需詳細資訊,請參閱 Analysis Services 中的 翻譯支援。

Analysis Services 中的語言支援

Language 屬性會設定對象的地區設定,用於處理、查詢,以及搭配 CaptionsTranslations 來支援多語種案例。 地區設定是以英文等語言標識符為基礎,以及美國或澳大利亞等地區,進一步精簡日期和時間表示法。

在實例層級,會在安裝期間設定 屬性,並且以 Windows 伺服器作業系統的語言為基礎(假設已安裝語言套件的 37 種語言之一)。 您無法在安裝程式中變更語言。

安裝后,您可以使用Management Studio中的伺服器屬性頁面或 msmdsrv.ini 組態檔,覆寫 Language。 您可以從許多語言中選擇,包括 Windows 用戶端支援的所有語言。 在實例層級設定時,Language 決定後續部署之所有資料庫的地區設定。 例如,如果您將 Language 設為德文,則部署至 實例的所有資料庫都會有 Language 屬性 1031,這是德文的 LCID。

Language 屬性的值是地區設定識別碼 (LCID)

有效值包括出現在下拉式清單中的任何 LCID。 在 Management Studio 和 SQL Server Data Tools 中,LCID 會以字串對等專案表示。 不論工具為何,只要公開 Language 屬性,就會顯示相同的語言。 擁有相同的語言清單可確保您可以在整個模型中一致實作及測試翻譯。

雖然 Analysis Services 會依名稱列出語言,但針對屬性儲存的實際值是 LCID。 以程式設計方式或透過 msmdsrv.ini 檔案設定語言屬性時,請使用 地區設定識別碼 (LCID) 作為值。 LCID 是一個 32 位值,其中包含識別特定語言的語言標識碼、排序標識元和保留位。 SQL Server Analysis Services 會使用 LCID 來指定 SQL Server Analysis Services 實例和對象的選取語言。

您可以使用十六進位或十進位格式來設定 LCID。 Language 屬性的有效值範例包括:

  • 0x0409或 1033 適用於 英文 (美國)

  • 日文 0x0411 或 1041

  • 德國(德國) 0x0407 或1031

  • 0x0416或1046 葡萄牙(巴西)

若要檢視較長的清單,請參閱 Microsoft所指派的地區設定標識符。 如需更多背景,請參閱 編碼和代碼頁

注意

Language 屬性不會判斷傳回系統訊息的語言,或使用者介面中顯示的字串。 錯誤、警告和訊息會當地語系化為 Office 和 Office 365 支援的所有語言,並在用戶端連線指定其中一個支援的地區設定時自動使用。

Analysis Services 中的定序支援

SQL Server Analysis Services 只使用 Windows 版本 (版本 _90 和 _100)和二進制定序。 它不會使用舊版 SQL Server 定序。 在 Cube 中,會在整個期間使用單一定序,但屬性層級的翻譯除外。 如需定義屬性翻譯的詳細資訊,請參閱 Analysis Services中的 翻譯支援。

定序會控制 bicameral 語言腳本中所有字串的區分大小寫,但對象標識元除外。 如果您在對象識別碼中使用大寫和小寫字元,請預先警告對象標識符的區分大小寫不是由定序決定,而是由 SQL Server Analysis Services 決定。 對於以英文腳本撰寫的物件標識符,不論定序為何,對象標識碼一律不區分大小寫。 斯拉夫和其他兩院語言是相反的(總是區分大小寫)。 如需詳細資訊,請參閱 全球化秘訣和最佳做法 (Analysis Services)

Analysis Services 中的定序與 SQL Server 關係資料庫引擎的定序相容,假設您在針對每個服務選取的排序選項中維持同位。 例如,如果關係資料庫區分腔調字,您應該以相同的方式設定 Cube。 定序設定分歧時,可能會發生問題。 如需範例和因應措施,請參閱 Unicode 字串中的空白 根據定序有不同的處理結果。 若要深入瞭解定序和資料庫引擎,請參閱 定序和 Unicode 支援

定序類型

Analysis Services 支援兩種定序類型:

  • Windows 定序 (版本 _90 和 _100)

    Windows 定序版本是 _90(未標記的較舊版本)和較新的 _100 版本。 只有 _100 版本會顯示定序名稱中的版本號碼:

    • latin1_general

    • latin1_general_100

    Windows 定序會根據語言的語言和文化特性來排序字元。 在 Windows 中,定序數目超過與它們搭配使用的地區設定(或語言),因為許多語言共用常見的字母和規則來排序和比較字元。 例如,33 個 Windows 地區設定,包括所有葡萄牙文和英文 Windows 地區設定,請使用 Latin1 代碼頁 (1252),並遵循一組常見的規則來排序和比較字元。

    注意

    決定定序時,您應該使用基礎資料庫所使用的相同定序。 不過,如果可以選擇,_100 版本會更 up-to日期,並提供更精確的語言文化排序慣例。

  • 二進制定序 (BIN 或 BIN2)

    二進制定序會排序 Unicode 字碼點,而不是語言值。 例如,在 Unicode 資料上使用時,Latin1_General_BIN和Japanese_BIN產生相同的排序結果。 雖然語言排序可能會產生類似 AAbBcCdD 的結果,但二進位排序會是 ABCDabcd,因為所有大寫字元的程式代碼點集體高於小寫字元的程式代碼點。

排序順序選項

排序選項可用來根據大小寫、輔色、假名和寬度敏感度來精簡排序和比較規則。 例如,SQL Server Analysis Services 定序 組態屬性的預設值是Latin1_General_AS_CS,指定使用Latin1_General定序,並具有區分腔調區分大小寫的排序順序。

請注意,如果想要使用 BIN 或 BIN2,BIN 和 BIN2 與其他排序選項互斥,請清除區分腔調字的排序選項。 同樣地,選取 BIN2 時,無法使用區分大小寫、不區分大小寫、區分腔調字、區分假名和區分全角選項。

下表描述 SQL Server Analysis Services 的 Windows 定序排序順序選項和相關聯的後綴。

排序順序 (後綴) 排序順序描述
二進位 (_BIN) 或 BIN2 (_BIN2) SQL Server 中有兩種類型的二進制定序;較舊的 BIN 定序和較新的 BIN2 定序。 在 BIN2 定序中,所有字元都會根據其代碼點排序。 在 BIN 定序中,只有第一個字元會根據字碼點排序,其餘字元會根據其位元組值排序。 (因為 Intel 平臺是一個有點尾端架構,因此 Unicode 程式代碼字元一律會儲存位元組交換。

針對 Unicode 數據類型上的二進制定序,地區設定不會在數據排序中考慮。 例如,Latin_1_General_BIN和Japanese_BIN在 Unicode 數據上使用時會產生相同的排序結果。

二進位排序順序區分大小寫且區分腔調字。 二進位也是最快的排序順序。
區分大小寫 (_CS) 區分大寫和小寫字母。 如果選取,小寫字母會先排序其大寫版本。 您可以藉由指定_CI來明確設定不區分大小寫。 定序特定的案例設定不適用於物件標識符,例如維度、Cube 和其他對象的標識碼。 如需詳細資訊,請參閱 全球化秘訣和最佳做法 (Analysis Services)
區分腔調字 (_AS) 區分輔色和不顯色字元。 例如,'a' 不等於 'ấ'。 如果未選取此選項,SQL Server Analysis Services 會將字母的輔色和未區分版本視為與排序目的相同。 您可以藉由指定_AI來明確設定不區分腔調字。
假名敏感(_KS) 區分兩種類型的日文假名字符:平假名和片假名。 如果未選取此選項,SQL Server Analysis Services 會將平假名和片假名字符視為等於排序目的。 假名不區分排序的排序沒有排序順序後綴。
區分寬度 (_WS) 當以雙位元組字元表示時,區分單一位元組位元元和相同的字元。 如果未選取此選項,SQL Server Analysis Services 會考慮相同字元的單一位元組和雙位元組表示法,以便進行排序。 不區分寬度的排序沒有排序順序後綴。

變更實例上的預設語言或定序

在安裝期間會建立默認語言和定序,但可以變更為安裝後設定的一部分。 變更實例層級的定序並不簡單,並隨附下列需求:

  • 服務重新啟動。

  • 更新現有物件的定序設定。 建立物件時,會繼承定序設定一次。 後續的定序變更必須手動完成。 如需如何在整個模型中傳播定序變更的秘訣,請參閱使用 XMLA 變更數據模型中 變更語言和定序。

  • 更新定序之後,重新處理分割區和維度。

您可以使用 SQL Server Management Studio 或 AMO PowerShell 來變更伺服器層級的預設語言或定序。 或者,您可以修改 <Language><CollationName> msmdsrv.ini 檔案中的設定,並指定語言的 LCID。

  1. 在Management Studio中,以滑鼠右鍵按下伺服器名稱 |屬性 | 語言/定序

  2. 選擇排序選項。 若要選取 BinaryBinary 2,請先清除 [區分腔調字複選框。

    請注意,定序和語言是完全獨立的設定。 如果您變更其中一個,則不會篩選另一個的值以顯示常見的組合。

  3. 更新數據模型以使用新的定序(請參閱下一節)。

  4. 重新啟動服務。

變更 Cube 上的語言或定序

  1. 在 [方案總管] 中,按兩下 Cube,以在 Cube 設計工具中開啟它。

  2. 在 [量值] 或 [維度] 窗格中,選取頂端節點。 任一窗格的最上層物件是 Cube。

  3. 在 [屬性] 中,設定 Language定序。 您選擇的值將由所有 Cube 物件使用,包括 Cube 維度和量值,並影響處理和查詢作業。

    在 Cube 中內嵌替代語言和定序屬性的唯一方法是透過翻譯。 如需詳細資訊,請參閱 Analysis Services 中的 翻譯支援。

使用 XMLA 變更數據模型中的語言和定序

建立物件時,語言和定序設定會繼承一次。 這些屬性的後續變更必須手動完成。 快速變更多個物件的定序的方法之一,就是在 XMLA 腳本上使用 ALTER 命令。

根據預設,定序會在資料庫層級設定一次。 繼承是在整個物件階層的其餘部分隱含。 如果您明確在 Cube 內的物件上設定 定序,在個別維度屬性上允許,則會出現在 XMLA 定義中。 否則,只有最上層定序屬性存在。

使用 XMLA 來修改現有的資料庫之前,請確定您不會在資料庫與用來建置它的來源檔案之間引入差異。 例如,您可能想要使用 XMLA 快速變更語言或定序以進行概念證明測試,但接著會追蹤原始程式檔的變更(請參閱 變更 Cube上的語言或定序),使用現有的作業程式重新部署解決方案。

  1. 在Management Studio中,以滑鼠右鍵按兩下資料庫 |將資料庫文稿為 | ALTER 以 | [新增查詢編輯器] 視窗

  2. 搜尋現有的語言或定序,並以替代值取代。

  3. 按 F5 以執行文稿。

  4. 重新處理 Cube。

透過 EnableFast1033Locale 提升英文地區設定的效能

如果您使用英文(美國)語言標識碼(0x0409或 1033)做為 SQL Server Analysis Services 實例的默認語言,您可以藉由設定 EnableFast1033Locale 組態屬性來取得額外的效能優勢,這是僅供該語言標識符使用的進階組態屬性。 將此屬性的值設定為 true 可讓 SQL Server Analysis Services 使用更快速的演算法進行字串哈希和比較。 如需設定組態屬性的詳細資訊,請參閱 Analysis Services 中的伺服器屬性

Analysis Services 中的GB18030支援

GB18030是用於編碼漢字之中華人民共和國中的個別標準。 在GB18030中,字元長度可以是 1、2 或 4 個字節。 在 Analysis Services 中,處理來自外部來源的數據時,沒有任何數據轉換。 數據只會儲存為 Unicode。 在查詢時,根據用戶端OS設定傳回文字數據時,會透過Analysis Services 用戶端連結庫(特別是 MSOLAP.dll OLE DB 提供者)執行GB18030轉換。 資料庫引擎也支援GB18030。 如需詳細資訊,請參閱 定序和 Unicode 支援

另請參閱

Analysis Services 的 全球化案例
全球化秘訣和最佳做法 (Analysis Services)
定序和 Unicode 支援