SQLShack

w tym artykule opisano konfigurację sortowania bazy danych usługi Azure SQL oraz sposób jej zmiany podczas importowania bazy danych z pliku BACPAC.

wprowadzenie

zestawienie odnosi się do konfiguracji, która określa zachowanie silnika bazy danych dla zestawu danych znaków na poziomie serwera, bazy danych lub kolumny. SQL Server ma szeroki zakres zestawień do obsługi różnic językowych w różnych częściach świata. Zapewnia reguły sortowania, wielkość liter dla typów danych Unicode (nchar, nvarchar lub ntext) i innych niż Unicode (char, varchar, nvarchar).

SQL Server obsługuje następujące zestawienia.

  • Windows
  • Binary: zestawienie binarne zawsze kończy się na _bin lub _BIN2
  • SQL Server: te nazwy zestawień zawsze zaczynają się od SQL_

w przypadku tradycyjnego (lokalnego) serwera SQL ustawienia regionalne systemu operacyjnego określają domyślne zestawienie. Można jednak modyfikować sortowanie na poziomie serwera podczas instalacji SQL Server lub modyfikować ustawienia regionalne systemu operacyjnego. Domyślna konfiguracja serwera SQL to sql_latin1_general_cp1_ci_as. Możesz zrozumieć te kolacje szczegółowo, odnosząc się do kolacji i obsługi Unicode.

wymagania

ten artykuł zakłada podstawową znajomość baz danych usługi Azure SQL. Jeśli jesteś początkującym, możesz odwołać się do istniejących artykułów SQL Azure w sqlshack. Możesz użyć bezpłatnego kredytu Microsoft Azure, rejestrując się pod adresem URL https://azure.microsoft.com/en-us/free/

Azure SQL Database Collation

Azure SQL DB to zarządzana oferta PaaS dla serwera SQL z pewnymi ograniczeniami i ograniczeniami do wykonywania określonych zadań. Podobnie jak lokalny serwer SQL, Usługa Azure DB obsługuje również różne zestawienia. Aby uzyskać listę obsługiwanych zestawień dla usługi Azure SQL DB, możemy wysłać zapytanie do sys.funkcja fn_helpcollations (). Zwraca listę 5508 zestawień. Poniższy rysunek daje wgląd w Zestawienie i opisy.

obsługiwana lista porównań

obsługiwana lista zestawiania

w przypadku usługi Azure SQL DB można wybrać zestawianie bazy danych na karcie dodatkowe ustawienia tworzenia bazy danych SQL. Jak pokazano poniżej, domyślne zestawienie pojawia się jako sql_latin1_general_cp1_ci_as.

możemy rozbić to zestawienie, aby je zrozumieć.

  • SQL-odnosi się do sortowania SQL Server
  • Latin1_General-ta część definiuje regułę sortowania znaków
  • CI-odnosi się do rozróżniania wielkości liter
  • jak-definiuje czułość akcentu

Określ zestawianie podczas tworzenia bazy danych

Określ zestawianie podczas tworzenia bazy danych

możesz kliknąć Znajdź zestawianie i wyszukać określone zestawianie, które chcesz skonfigurować dla usługi Azure DB.

możesz wdrożyć bazę danych platformy Azure na istniejącym serwerze logicznym platformy Azure. Dlatego jeśli utworzysz nową bazę danych usługi Azure przy użyciu SSMS, możesz zdefiniować określone zestawienie za pomocą strony Opcje.

Sprawdź zestawianie w SSMS

jeśli utworzysz usługę Azure SQL DB przy użyciu T-SQL, możesz użyć słowa kluczowego COLLATE i określić wymagane zestawianie bazy danych.

1
2
3

Utwórz bazę danych MyDemoSQLDB
zestawiaj Latin1_General_100_CS_AS_SC;
idź

musisz utworzyć bazę danych w odpowiednim zestawieniu. Twoje zapytania SQL mogą nie działać poprawnie z powodu niedopasowania sortowania. Jeśli jednak chcesz zmodyfikować po utworzeniu bazy danych usługi Azure SQL, nie jest to proste. Usługa Azure SQL DB nie obsługuje zmiany sortowania przy użyciu opcji ALTER DATABASE COLLATE. Jeśli spróbujesz go zmienić, otrzymasz następujący komunikat o błędzie.

1
2
3
4

użyj master
przejdź
ZMIEŃ bazę danych Azuredemodatabase
zestawiaj SQL_Latin1_General_CP1250_CI_AS

Modyfikuj zestawianie za pomocą funkcji COLLATE

  • Uwaga: Nie modyfikuj ani nie ustawiaj określonego zestawienia, dopóki nie będziesz mieć określonych wymagań. Nigdy nie rób tego bezpośrednio w produkcyjnej bazie danych. Przetestuj ją dokładnie na niższym środowisku DB, a następnie planuj przejść do sortowania produkcyjnego

Załóżmy, że wdrażasz bazę danych Azure SQL z lokalnego pliku BACPAC. Chcesz innego zestawienia w docelowej bazie danych.

  • Uwaga: zakładam, że masz aktywny Azure SQL DB. Jeśli nie, możesz użyć bezpłatnego konta warstwy do wdrożenia testowej bazy danych
  • w tym artykule demo wykonamy następujące zadania:

    • Eksportuj bazę danych Azure SQL w formacie BACPAC
    • zainstaluj Microsoft SQL Server Data-Tier Application Framework (18.1)
    • Modyfikuj model.konfiguracja pliku xml
    • użyj sqlpackage.exe aby wdrożyć Azure database ze zaktualizowaną kolacją
    • Sprawdź kolację bazy danych

    Krok 1: Eksportuj Azure SQL database w formacie BACPAC

    w tym kroku eksportujemy Azure SQL DB w formacie BACPAC. Możemy sprawdzić, czy istniejące Zestawienie to sql_latin1_general_cp1_ci_as.

    Sprawdź istniejące zestawienie

    aby uzyskać eksport, kliknij prawym przyciskiem myszy bazę danych platformy Azure i wybierz Eksportuj aplikację warstwy danych…

    Eksportuj bazę danych Azure SQL w formacie BACPAC

    Eksportuj bazę danych Azure SQL w formacie BACPAC

    określ katalog w zapisz na dysku lokalnym.

    Zapisz na dysku lokalnym

    Sprawdź, Eksportuj i monitoruj postęp aplikacji warstwy danych w formacie BACPAC.

     Zobacz status

    wyświetl status

    Krok 2: Pobierz Microsoft SQL Server Data-Tier Application Framework (18.1)

    musisz pobrać i zainstalować najnowszą wersję SSDT. Przejdź do adresu URL https://www.microsoft.com/en-us/download/details.aspx?id=57784 i kliknij Pobierz.

     Pobierz Microsoft SQL Server Data-Tier Application Framework

    Pobierz Microsoft SQL Server Data-Tier Application Framework

    wybierz wymaganą wersję pliku MSI i pobierz ją. Jest to lekki plik pakietu.

    Wybierz MSI

    Wybierz MSI

    postępuj zgodnie z kreatorem instalacji, aby skonfigurować warstwę aplikacji Microsoft SQL Server Data.

    postęp instalacji

    postęp instalacji

    komunikat o postępie instalacji

    komunikat o postępie instalacji

    Instalacja zakończona

    Instalacja zakończona

    Krok 3: Zmień nazwę. Plik BACPAC do .ZIP

    w tym kroku zmieniamy nazwę wyeksportowanego pliku pakietu BACPAC na format ZIP. Aby to zrobić, kliknij prawym przyciskiem myszy zaimportowany BACPAC i zmień rozszerzenie na ZIP. Typ pliku jest skompresowany (spakowany) po zmianie rozszerzenia, jak pokazano na poniższym rysunku.

    Zmień nazwę .Plik BACPAC do .ZIP

    Zmień nazwę .Plik BACPAC do .ZIP

    kliknij prawym przyciskiem myszy skompresowany plik i rozpakuj go. W wyodrębnionym folderze znajdziesz model.xml, skopiuj model.xml do innego katalogu, takiego jak C:\Temp folder.

    Model, plik xml

    Model, plik xml

    Otwórz model.xml z C:\Temp\Model.xml i zmodyfikować zestawianie DB. Poniższy rysunek przedstawia stare i nowe zestawienia dla usługi Azure SQL Database. Tutaj używamy sortowania SQL z wrażliwością na wielkość liter.

    Modyfikuj zestawianie w modelu.xml

    Modyfikuj zestawianie w modelu.XML

    Krok 4: wdrożyć Azure Database za pomocą sqlpackage.exe

    tutaj przejdź do katalogu C:\Program Files\Microsoft SQL Server \ 150\DAC \ bin w wierszu polecenia. Używamy sqlpackage.exe do importowania BACPAC z parametrem / ModelFilePath. Zastępuje on konfigurację pliku modelu BACPAC określonym plikiem w tym parametrze.

    wymagane parametry:

    • /tsn: Określ Azure SQL Server FQDN, do którego chcemy zaimportować ten plik BACPAC. W moim przypadku jest to azuredemosqldemo.database.windows.net
    • /TDN: jest to nowa nazwa bazy danych Azure SQL. Nie można zaimportować BACPAC do istniejącej bazy danych
    • /tu: Określ nazwę użytkownika administratora, aby połączyć się z Azure SQL Server i wdrożyć bazę danych
    • / TP: Wprowadź hasło administratora
    • /SF: Podaj lokalizację pliku BACPAC
    • /ModelFilePath: wprowadź zaktualizowany model.Ścieżka do pliku XML

    wcześniej zmieniliśmy rozszerzenie pliku BACPAC na ZIP. Musimy zmienić go z powrotem na BACPAC, aby uruchomić sqlpackage.polecenie exe.

    aby zmodyfikować sortowanie w BACPAC, wykonaj następujące polecenie w wierszu polecenia.

    sqlpackage.exe / Action: Import /tsn:azuredemosqldemo.database.windows.net /tdn: azuredemodatabasenew /tu:sqladmin / TP:* * * * * * * / SF: C:\Temp \ azuredemodatabase.BACPAC / ModelFilePath: C: \ Temp \ model.xml

    otrzymasz komunikat ostrzegawczy:

    „Model nadrzędny.xml za pomocą pliku „C:\Temp\model.xml”. Użycie tego ustawienia może spowodować awarię wdrożenia i/lub niezamierzoną utratę danych. To ustawienie ma być używane tylko w przypadku rozwiązywania problemów z publikacją, importem lub generowaniem skryptu ”

    rozpoczyna import danych, przetwarza tabele i wdraża na nich bazę danych. Czas wdrożenia bazy danych zależy od liczby tabel, rozmiaru danych, indeksów.

    deploy database using sqlpackage.exe

    w końcu otrzymasz komunikat – pomyślnie zaimportowana baza danych.

    pomyślnie zaimportowana baza danych

    Krok 5: weryfikacja

    teraz połącz się z usługą Azure Database za pomocą SSMS i zweryfikuj zestawienie bazy danych za pomocą następującego skryptu.

    1
    SELECT CONVERT (varchar (256), DATABASEPROPERTYEX (’azuredemodatabasenew’,’collation’));

    jak pokazano poniżej, nowo wdrożona baza danych używa sortowania sql_latin1_general_cp1_cs_as.

    Sprawdź zestawienie w wdrożonej usłudze Azure SQL Database

    teraz Zaloguj się do portalu Azure i zobacz Właściwości bazy danych. Ta baza danych ma warstwę cenową ogólnego przeznaczenia Gen5, 2vcores. Podczas wdrażania bazy danych nie określiliśmy żadnej warstwy cenowej. W związku z tym Usługa Azure SQL database przyjmuje domyślną warstwę cen.

    zobacz cennik

    Krok 6: Wdrożenie usługi Azure database w określonej warstwie cenowej

    Załóżmy, że chcemy wdrożyć bazę danych ze zmodyfikowanym zestawieniem i podstawową warstwą cenową. W tym demo zmieniamy kolację DB na Latin1_General_BIN. Dlatego otwórz model.xml i zmienić zestawienie jak zaznaczono wcześniej.

    Zmień zestawianie DB na Latin1_General_BIN.

    tym razem podajemy nowy parametr(/p) do Ustawienia edycji bazy danych. Poinstruuje platformę Azure, aby wdrożyła bazę danych w określonej warstwie cenowej.

    sqlpackage.exe / Action: Import / tsn: azuredemosqldemo.baza danych.windows.net /tdn: azuredemodatabasenew /tu:sqladmin /TP:******* /p:DatabaseEdition=Basic / SF:C:\Temp\azuredemodatabase.BACPAC / ModelFilePath: C: \ Temp \ model.XML

    Deploy package

    po wdrożeniu bazy danych Sprawdź zestawienie bazy danych. Jak pokazano poniżej, używa kolacji Latin1_General_BIN.

    Sprawdź zestawienie DB

    Sprawdź zestawienie bazy danych

    możesz połączyć się z witryną Azure portal i zweryfikować warstwę cen jako podstawową.

    Sprawdź cennik

    • Uwaga: Nie należy modyfikować zestawiania bazy danych bez żadnych szczególnych wymagań. Może to powodować problemy, jeśli zmienisz go arbitralnie

    wniosek

    w tym artykule omówiono domyślne zestawianie bazy danych Azure SQL i proces jej zmiany podczas importowania bazy danych z pliku BACPAC. Możesz określić żądane zestawienie i wdrożyć bazę danych. Nigdy jednak nie zmieniaj zestawienia, chyba że masz określone wymagania. Możesz wypróbować kroki na własnej testowej bazie danych Azure SQL.

    • Autor
    • Ostatnie posty
    Rajendra Gupta
    jako trener MCSA certified I Microsoft Certified Trainer w Gurgaon w Indiach, z 13-letnim doświadczeniem, Rajendra pracuje dla wielu dużych firm, koncentrując się na optymalizacji wydajności, monitorowaniu, wysokiej dostępności oraz strategiach i wdrażaniu disaster recovery. Jest autorem setek autorytatywnych artykułów na temat SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS/Amazon RDS, Git i powiązanych technologii, które do tej pory obejrzało ponad 10 milionów czytelników.
    jest twórcą jednego z największych darmowych internetowych zbiorów artykułów na jeden temat.jego 50-częściowa seria na SQL Server Always On Availability Groups. W oparciu o swój wkład w społeczność SQL Server został wyróżniony różnymi nagrodami, w tym prestiżowym „najlepszym autorem roku” nieprzerwanie w 2020 i 2021 roku w sqlshack.
    Raj zawsze interesuje się nowymi wyzwaniami, więc jeśli potrzebujesz pomocy Konsultacyjnej na dowolny temat poruszany w jego pismach, możesz się z nim skontaktować w [email protected]
    Zobacz wszystkie posty, których autorem jest Rajendra Gupta

    Rajendra Gupta
    najnowsze posty Rajendra Gupta (Zobacz wszystkie)
    • użyj szablonów ARM, aby wdrożyć instancje Azure container za pomocą obrazów SQL Server Linux-21 grudnia 2021 r.
    • dostęp do pulpitu zdalnego dla AWS RDS SQL Server z niestandardowym Amazon RDS-14 grudnia 2021 r
    • przechowuj pliki SQL Server w trwałej pamięci masowej dla wystąpień Azure Container – grudzień 10, 2021

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.