分析執行計畫的概觀 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

分析執行計畫的概觀

您可以使用 Amazon RDS Performance Insights 儀表板來瞭解哪些計劃對 Oracle 和 SQL Server 資料庫執行個體的資料庫負載貢獻最大。

例如,指定時間的最高 SQL 陳述式可能正使用下表中顯示的計畫。

最高 SQL 計畫

SELECT SUM(amount_sold) FROM sales WHERE prod_id = 10

計畫 A

SELECT SUM(amount_sold) FROM sales WHERE prod_id = 521

計畫 B

SELECT SUM(s_total) FROM sales WHERE region = 10

計畫 A

SELECT * FROM emp WHERE emp_id = 1000

計畫 C

SELECT SUM(amount_sold) FROM sales WHERE prod_id = 72

計畫 A

可使用績效詳情的計畫功能執行以下操作:

  • 找出最高 SQL 查詢使用的計畫。

    例如,您可能會發現大多數資料庫負載是由使用計畫 A 和計畫 B 的查詢所產生,只有一小部分使用計畫 C。

  • 比較同一查詢的不同計畫。

    在上面的範例中,除了產品 ID 之外,三個查詢完全相同。兩個查詢使用計畫 A,但有一個查詢使用計畫 B。若要查看兩個計畫的差異,可以使用績效詳情。

  • 了解查詢何時切換到新計畫。

    您可能會看到有查詢原本使用計畫 A,然後在某個時間切換到計畫 B。此時資料庫是否有變化? 例如,如果資料表空白,最佳化程式可能會選擇完整資料表掃描。如果資料表載入了一百萬列,則最佳化程式可能會切換到索引範圍掃描。

  • 向下切入至成本最高的計畫之特定步驟。

    例如,對於長時間執行的查詢,可能會在等值連接中顯示遺失聯結條件。這個缺少的條件強制使用笛卡兒聯結,聯結兩個資料表的所有列。

您可以使用績效詳情的計畫擷取功能執行上述任務。就像您可以透過等待事件和常用 SQL 來切割查詢一樣,也可以依計劃維度切割查詢。