藉由升級 Azure Synapse Analytics 中的專用 SQL 集區 (前身為 SQL DW) 來將效能最佳化

將專用 SQL 集區 (前身為 SQL DW) 升級為最新一代的 Azure 硬體和儲存體架構。

為何要升級?

您現在可以在所支援區域的 Azure 入口網站中順暢地升級至專用 SQL 集區 (前身為 SQL DW) 計算最佳化 Gen2 層。 如果您所在的區域不支援自我升級,您可以升級至支援的區域,或靜候您的區域支援自我升級。 請立即升級,以利用最新一代的 Azure 硬體和增強的儲存體架構,包括更快的效能、更高的延展性,以及無限制的單欄式儲存體。

重要

這項升級適用於支援的區域中的計算最佳化 Gen1 層專用 SQL 集區 (前身為 SQL DW)。

開始之前

  1. 確認您所在的區域是否支援從 GEN1 移轉至 GEN2。 請注意自動移轉日期。 若要避免與自動化程序發生衝突,請規劃在自動化程序開始日期之前進行手動移轉。

  2. 如果您所在的區域尚不提供支援,請繼續檢查您所要新增的區域,或使用還原升級至支援的區域。

  3. 如果您所在的區域已提供支援,則請透過 Azure 入口網站來升級

  4. 使用下列對應,根據計算最佳化 Gen1 層目前的效能層級,針對專用 SQL 集區 (前身為 SQL DW) 選取建議的效能層級

    計算最佳化 Gen1 層 計算最佳化 Gen2 層
    DW100 DW100c
    DW200 DW200c
    DW300 DW300c
    DW400 DW400c
    DW500 DW500c
    DW600 DW500c
    DW1000 DW1000c
    DW1200 DW1000c
    DW1500 DW1500c
    DW2000 DW2000c
    DW3000 DW3000c
    DW6000 DW6000c

注意

建議的效能層級並非直接轉換。 例如,我們建議從 DW600 轉換至 DW500c。

使用 Azure 入口網站在支援的區域中進行升級

  • 透過 Azure 入口網站從 Gen1 移轉至 Gen2 會是永久效果。 沒有程序可讓您返回 Gen1。
  • 必須是執行中的專用 SQL 集區 (前身為 SQL DW) 才能遷移至 Gen2

開始之前

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 請參閱安裝 Azure PowerShell 以開始使用。 若要瞭解如何遷移至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 遷移至 Az。

  • 登入 Azure 入口網站
  • 確定專用 SQL 集區 (前身為 SQL DW) 正在執行 - 其必須遷移至 Gen2

PowerShell 升級命令

  1. 如果要升級的計算最佳化 Gen1 層專用 SQL 集區 (前身為 SQL DW) 已暫停,請繼續專用 SQL 集區 (前身為 SQL DW)

  2. 請做好停機幾分鐘的準備。

  3. 找出計算最佳化 Gen1 效能層級的任何程式碼參考,並修改其對等計算最佳化 Gen2 效能層級的程式碼參考。 以下是您應該在升級前更新程式碼參考的兩個範例:

    原始 Gen1 PowerShell 命令:

    Set-AzSqlDatabase -ResourceGroupName "myResourceGroup" -DatabaseName "mySampleDataWarehouse" -ServerName "mynewserver-20171113" -RequestedServiceObjectiveName "DW300"
    

    修改為:

    Set-AzSqlDatabase -ResourceGroupName "myResourceGroup" -DatabaseName "mySampleDataWarehouse" -ServerName "mynewserver-20171113" -RequestedServiceObjectiveName "DW300c"
    

    注意

    -RequestedServiceObjectiveName "DW300" 已變更為 - RequestedServiceObjectiveName "DW300c"

    原始 Gen1 T-SQL 命令:

    ALTER DATABASE mySampleDataWarehouse MODIFY (SERVICE_OBJECTIVE = 'DW300') ;
    

    修改為:

    ALTER DATABASE mySampleDataWarehouse MODIFY (SERVICE_OBJECTIVE = 'DW300c') ;
    

    注意

    SERVICE_OBJECTIVE = 'DW300' 已變更為 SERVICE_OBJECTIVE = 'DW300c'

開始升級

  1. 在 Azure 入口網站中移至計算最佳化 Gen1 專用 SQL 集區 (前身為 SQL DW)。 如果要升級的計算最佳化 Gen1 層專用 SQL 集區 (前身為 SQL DW) 已暫停,請繼續專用 SQL 集區

  2. 選取 [工作] 索引標籤底下的 [升級至 Gen2] 卡片:Upgrade_1

    注意

    如果您未在 [工作] 索引標籤下看見 [升級至 Gen2] 卡片,您的訂用帳戶類型受限於目前的區域。 提交支援票證,以讓您的訂用帳戶獲得核准。

  3. 在升級之前,請確定您的工作負載已完成執行並停止。 您會先經歷幾分鐘的停機,然後專用 SQL 集區 (前身為 SQL DW) 才會重新上線,並變為計算最佳化 Gen2 層專用 SQL 集區 (前身為 SQL DW)。 選取升級

    Upgrade_2

  4. 檢查 Azure 入口網站中的狀態來監視您的升級

    Upgrade3

    升級程序的第一個步驟會進行調整規模作業 (「升級 - 離線」),期間所有工作階段都會終止,且連線將會予以捨棄。

    升級程序的第二個步驟是資料移轉 (「升級 - 上線」)。 資料移轉是在線上慢慢進行的背景程序。 此程序會將單欄式資料慢慢地從舊的儲存體架構移至使用本機 SSD 快取的新儲存體架構。 在這段期間,專用 SQL 集區 (前身為 SQL DW) 會上線以供進行查詢和載入。 您的資料無論已遷移與否,都將可供查詢。 資料移轉會依據您的資料大小、效能層級和資料行存放區的區段數目,而以不同的速率進行。

  5. 選擇性建議:在調整作業完成之後,您就可以提高資料移轉背景程序的進行速度。 您可以用較大的 SLO 和資源類別,在您會查詢的所有主要資料行存放區資料表上執行 Alter Index rebuild,以強制移動資料。 相較於會慢慢進行的背景程序,這項作業會離線進行,因此可能需要數小時才能完成 (視資料表的數量和大小而定)。 不過一旦完成,資料移轉速度就會大幅提升,因為增強後的新儲存體架構具有高品質的資料列群組。

注意

Alter Index rebuild 是一種離線作業,資料表在重建完成後才可使用。

下列查詢會產生必要的 Alter Index Rebuild 命令,以加速資料移轉:

SELECT 'ALTER INDEX [' + idx.NAME + '] ON ['
       + Schema_name(tbl.schema_id) + '].['
       + Object_name(idx.object_id) + '] REBUILD ' + ( CASE
                                                         WHEN (
                                                     (SELECT Count(*)
                                                      FROM   sys.partitions
                                                             part2
                                                      WHERE  part2.index_id
                                                             = idx.index_id
                                                             AND
                                                     idx.object_id =
                                                     part2.object_id)
                                                     > 1 ) THEN
              ' PARTITION = '
              + Cast(part.partition_number AS NVARCHAR(256))
              ELSE ''
                                                       END ) + '; SELECT ''[' +
              idx.NAME + '] ON [' + Schema_name(tbl.schema_id) + '].[' +
              Object_name(idx.object_id) + '] ' + (
              CASE
                WHEN ( (SELECT Count(*)
                        FROM   sys.partitions
                               part2
                        WHERE
                     part2.index_id =
                     idx.index_id
                     AND idx.object_id
                         = part2.object_id) > 1 ) THEN
              ' PARTITION = '
              + Cast(part.partition_number AS NVARCHAR(256))
              + ' completed'';'
              ELSE ' completed'';'
                                                    END )
FROM   sys.indexes idx
       INNER JOIN sys.tables tbl
               ON idx.object_id = tbl.object_id
       LEFT OUTER JOIN sys.partitions part
                    ON idx.index_id = part.index_id
                       AND idx.object_id = part.object_id
WHERE  idx.type_desc = 'CLUSTERED COLUMNSTORE';

透過 Azure 入口網站使用還原功能從 Azure 地理區域升級

使用 Azure 入口網站建立使用者定義的還原點

  1. 登入 Azure 入口網站

  2. 瀏覽至您要建立還原點的專用 SQL 集區 (前身為 SQL DW)。

  3. 在 [概觀] 區段頂端,選取 [+ 新增還原點]

    新增還原點

  4. 指定還原點的名稱。

    還原點名稱

使用 Azure 入口網站還原作用中或已暫停的資料庫

  1. 登入 Azure 入口網站

  2. 瀏覽至要從中進行還原的專用 SQL 集區 (前身為 SQL DW)。

  3. 在 [概觀] 區段頂端,選取 [還原]

    還原概觀

  4. 選取 [自動還原點] 或 [使用者定義的還原點]。 針對使用者定義的還原點,選取使用者定義的還原點建立新的使用者定義還原點。 針對伺服器,請選取 [新建],並選擇 Gen2 支援的地理區域中的伺服器。

    自動還原點

使用 PowerShell 從 Azure 地理區域還原

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 請參閱安裝 Azure PowerShell 以開始使用。 若要瞭解如何遷移至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 遷移至 Az。

若要還原資料庫,請使用 Restore-AzSqlDatabase Cmdlet。

注意

您可以執行異地還原來還原至 Gen2! 若要這麼做,請指定 Gen2 ServiceObjectiveName (例如 DW1000c) 作為選擇性參數。

  1. 開啟 Windows PowerShell。
  2. 連接到您的 Azure 帳戶,然後列出與您帳戶關聯的所有訂用帳戶。
  3. 選取包含要還原之資料庫的訂用帳戶。
  4. 取得您想要復原的資料庫。
  5. 建立資料庫的復原要求,指定 Gen2 ServiceObjectiveName。
  6. 確認異地還原資料庫的狀態。
Connect-AzAccount
Get-AzSubscription
Select-AzSubscription -SubscriptionName "<Subscription_name>"

# Get the database you want to recover
$GeoBackup = Get-AzSqlDatabaseGeoBackup -ResourceGroupName "<YourResourceGroupName>" -ServerName "<YourServerName>" -DatabaseName "<YourDatabaseName>"

# Recover database
$GeoRestoredDatabase = Restore-AzSqlDatabase –FromGeoBackup -ResourceGroupName "<YourResourceGroupName>" -ServerName "<YourTargetServer>" -TargetDatabaseName "<NewDatabaseName>" –ResourceId $GeoBackup.ResourceID -ServiceObjectiveName "<YourTargetServiceLevel>" -RequestedServiceObjectiveName "DW300c"

# Verify that the geo-restored database is online
$GeoRestoredDatabase.status

注意

若要在還原完成之後設定資料庫,請參閱 在復原之後設定資料庫

如果來源資料庫是啟用 TDE,則復原的資料庫將是啟用 TDE。

如果您遇到任何關於專用 SQL 集區的問題,請建立支援票證以及將「Gen2 升級」當作可能原因。

後續步驟

升級後的專用 SQL 集區 (前身為 SQL DW) 已上線。 若要充分利用增強的架構,請參閱適用於工作負載管理的資源類別