適用於 Azure VM 上 SQL Server 的 SQL 最佳做法評定

適用于:Azure VM 上的SQL Server

Azure 入口網站的 SQL 最佳做法評定功能會使用 SQL 評定 API 所提供的各種規則集,找出可能的效能問題並評定 Azure 虛擬機器 (VM) 上的 SQL Server 是否已設定為遵循最佳做法。

若要深入了解,請觀看這段關於 SQL 最佳做法評定的影片:

概觀

在啟用 SQL 最佳做法評定功能之後,系統會掃描您的 SQL Server 執行個體和資料庫以提供索引、過時功能、啟用或缺少追蹤旗標、統計資料等的建議。建議會顯示在 Azure 入口網站SQL VM 管理頁面中。

評定結果會使用 Microsoft Monitoring Agent (MMA),上傳至您的 Log Analytics 工作區。 如果您的 VM 已設定為使用 Log Analytics,則 SQL 最佳做法評定功能會使用現有的連線。 否則,MMA 延伸模組會安裝於 SQL Server VM,並連接至指定的 Log Analytics 工作區。

評定執行時間取決於您的環境 (物件或資料庫等的數目),持續時間可能為幾分鐘至多一小時。 評定結果的大小同樣也取決於您的環境。 評定會根據您的執行個體和該執行個體上的所有資料庫執行。 在我們的測試中,我們觀察到評定執行最多可能會對電腦造成 5-10% 的 CPU 影響。 在這些測試中,會在針對 SQL Server 執行 TPC-C 之類的應用程式時完成評定。

必要條件

若要使用 SQL 最佳做法評定功能,您必須具備下列必要條件:

啟用

您可以使用 Azure 入口網站 或 Azure CLI 來啟用 SQL 最佳做法評估。

若要使用 Azure 入口網站 啟用 SQL 最佳做法評估,請遵循下列步驟:

  1. 登入 Azure 入口網站,並移至您的 SQL Server VM 資源
  2. 選取 [設定] 下的 [SQL 最佳做法評定]。
  3. 選取 [啟用 SQL 最佳做法評定] 或 [設定] 以瀏覽至 [設定] 頁面。
  4. 核取 [啟用 SQL 最佳做法評定] 方塊並提供下列項目:
    1. 上傳評定的 Log Analytics 工作區。 如果 SQL Server VM 先前尚未與工作區建立關聯,則請從下拉式清單選擇訂用帳戶中的現有工作區。 否則,先前相關聯的工作區已填入其中。
    2. 執行排程。 您可以選擇依需求執行評定或依排程自動執行。 如果您選擇排程,則請提供頻率 (每週或每月)、當週天數、週期性 (每 1 至 6 週),以及當天開始評定的時間 (本機至 VM 時間)。
  5. 選取 [套用] 以儲存您的變更,並將 Microsoft Monitoring Agent 部署至您的 SQL Server VM (如果尚未部署)。 當 SQL 最佳做法評定功能已可供您的 SQL Server VM 使用時,隨即向您顯示 Azure 入口網站通知。

評定 SQL Server VM

評定執行:

  • 在排程上
  • 隨選

執行排程的評定

您可以使用 Azure 入口網站 和 Azure CLI,依排程設定評量。

如果您在 [設定] 刀鋒視窗中設定排程,則評定會在指定的日期和時間自動執行。 選擇 [設定] 以修改您的評定排程。 在您提供新的排程後,便會覆寫先前的排程。

依需求執行評量

為您的SQL Server VM 啟用 SQL 最佳做法評估功能之後,可以使用 Azure 入口網站 或 Azure CLI 視需要執行評量。

若要使用Azure 入口網站來執行隨選評定,請從[Azure 入口網站 SQL Server VM 資源] 頁面的 [SQL 最佳做法評估] 刀鋒視窗中選取 [執行評量]。

檢視結果

[SQL 最佳做法評定] 頁面的 [評定結果] 區段會顯示最新評定執行的清單。 每個資料列會顯示執行的開始時間,以及狀態:已排程、執行中、正在上傳結果、完成或失敗。 每個評定執行均有兩個部分:評估您的執行個體,以及將結果上傳至您的 Log Analytics 工作區。 [狀態] 欄位涵蓋這兩個部分。 評定結果會顯示在 Azure 活頁簿中。

存取 Azure 活頁簿中的評定結果共有三種方式:

  • 選取 [SQL 最佳做法評定] 頁面上的 [檢視最新的成功評定] 按鈕。
  • 從 [SQL 最佳做法評定] 頁面的 [評定結果] 區段,選取完成的執行。
  • 從 [SQL VM 資源] 頁面的 [概觀] 頁面上顯示的 [前 10 個建議],選取 [檢視評定結果]。

在開啟活頁簿之後,您可以使用下拉式清單選取先前的執行。 您可以使用 [結果] 頁面來檢視單一執行的結果,或使用 [趨勢] 頁面來檢閱歷程記錄的趨勢。

結果頁面

[結果] 頁面會使用 [全部、新、已解決] 索引標籤,以組織建議。 使用這些索引標籤以檢視目前執行的所有建議、所有新的建議 (先前執行的差異),或先前執行的已解決建議。 索引標籤有助於追蹤執行之間的進度。 [詳細資訊] 索引標籤會識別最常發生的問題,以及最有問題的資料庫。 使用這些索引標籤,判斷要聚焦精力的位置。

圖表會依不同類別的嚴重性 (高、中、低和資訊) 分組評定結果。 選取每個類別以查看建議的清單,或在 [搜尋] 方塊中搜尋關鍵片語。 建議從最嚴重的建議開始,然後依序瀏覽清單。

第一個方格會顯示每個建議,以及您環境遇到該問題的執行個體數目。 當您在第一個方格中選取一個資料列時,第二個方格會列出該特定建議的所有執行個體。 如果未在第一個方格中選取任何項目,則第二個方格會顯示所有建議。 這可能是大型清單。 您可以使用方格上方的下拉式清單 ([名稱]、[嚴重性]、[標籤]、[檢查識別碼]) 來篩選結果。 您也可以使用 [匯出至 Excel] 和 [在記錄檢視中開啟上次執行的查詢] 選項,方法是選取每個方格右上角的小型圖示。

圖表的 [已通過] 區段會識別您已遵循的建議。

選取 [訊息] 欄位以檢視每個建議的詳細資訊,例如詳細說明和相關的線上資源。

[趨勢] 頁面上有三個圖表,顯示隨時間的變更:所有問題、新的問題和已解決的問題。 這些圖表可協助您查看進度。 一般來說,建議的數目會下降,而以解決的問題會上升。 圖例會顯示每個嚴重性層級的平均問題數目。 將滑鼠停留在橫條上方,以查看每次執行的個別值。

如果在一天內有多次執行,則只有最新的執行會包含在 [趨勢] 頁面上的圖表中。

針對訂用帳戶中的所有 VM 啟用

您可以使用 Azure CLI,在訂用帳戶內的所有SQL Server VM 上啟用 SQL 最佳做法評估功能。 若要這樣做,請使用下列範例腳本:

# This script is formatted for use with Az CLI on Windows PowerShell. You may need to update the script for use with Az CLI on other shells.
# This script enables SQL best practices assessment feature for all SQL Servers on Azure VMs in a given subscription. It configures the VMs to use a Log Analytics workspace to upload assessment results. It sets a schedule to start an assessment run every Sunday at 11pm (local VM time).
# Please note that if a VM is already associated with another Log Analytics workspace, it will give an error.
 
$subscriptionId = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
# Resource Group where the Log Analytics workspace belongs
$myWsRg = 'myWsRg'
# Log Analytics workspace where assessment results will be stored
$myWsName = 'myWsName'
 
# Ensure in correct subscription
az account set --subscription $subscriptionId
 
$sqlvms = az sql vm list | ConvertFrom-Json 
 
foreach ($sqlvm in $sqlvms)
{
  echo "Configuring feature on $($sqlvm.id)"
  az sql vm update --assessment-weekly-interval 1 --assessment-day-of-week Sunday --assessment-start-time-local "23:00" --workspace-name $myWsName --workspace-rg $myWsRg -g $sqlvm.resourceGroup -n $sqlvm.name
  
  # Alternatively you can use this command to only enable the feature without setting a schedule
  # az sql vm update --enable-assessment true --workspace-name $myWsName --workspace-rg $myWsRg -g $sqlvm.resourceGroup -n $sqlvm.name  
 
  # You can use this command to start an on-demand assessment on each VM
  # az sql vm start-assessment -g $sqlvm.resourceGroup -n $sqlvm.name
}

已知問題

在使用 SQL 最佳做法評定時,您可能會遇到下列的一些已知問題。

啟用 SQL 最佳做法評定的設定錯誤

如果您的虛擬機器已與沒有存取權或位於其他訂用帳戶的 Log Analytics 工作區建立關聯,則將會在 [設定] 刀鋒視窗中看到錯誤。 如是前者,您可以遵循這些指示,取得該工作區的權限或將 VM 切換至不同 Log Analytics 工作區以移除 Microsoft Monitoring Agent。

啟用或執行評量的部署失敗

請參閱包含 SQL VM 之資源群組的部署歷程記錄,以檢視與失敗的動作相關聯的錯誤訊息。

評定失敗

如果評定或上傳結果因某些原因而失敗,則執行的狀態會表示失敗。 按一下狀態會開啟 [內容] 窗格,您可以查看失敗的詳細資料,以補救問題的可能方式。

提示

如果您已依照此處中的說明在 Windows 中強制執行 TLS 1.0 或更高版本,並停用較舊的 SSL 通訊協定,則您也必須確定 .NET Framework 已設定為使用強式密碼編譯。

後續步驟