高清欧美性猛交xxxx黑人猛交_国产激情视频一区二区三区_影音先锋人妻啪啪av资源网站_国模无码一区二区三区_成人麻豆亚洲综合无码精品

SQL服務(wù)器查詢調(diào)優(yōu)的三大步驟

SQL服務(wù)器查詢調(diào)優(yōu)的三大步驟

查詢調(diào)優(yōu)通常是加速SQL服務(wù)器性能的最快方法。大多數(shù)情況下,系統(tǒng)級服務(wù)器性能(內(nèi)存、處理器等)改進(jìn)措施既無效又昂貴。專家開發(fā)人員認(rèn)為,大多數(shù)性能問題都可以追溯到編寫不當(dāng)?shù)牟樵兒偷托У乃饕皇怯布拗?。事實上,有些性能問題只能通過查詢調(diào)優(yōu)來解決。

SQL服務(wù)器查詢調(diào)優(yōu)的三大步驟-美聯(lián)科技

但是當(dāng)涉及到SQL服務(wù)器性能查詢調(diào)優(yōu)時,DBA 經(jīng)常會遇到從哪里開始的問題。您如何評估查詢?您如何發(fā)現(xiàn)查詢編寫方式中的缺陷?您如何發(fā)現(xiàn)隱藏的改進(jìn)機會?查詢優(yōu)化一半是科學(xué),一半是藝術(shù),因為沒有正確或錯誤的答案,只有最適合給定情況的解決方案。

這里有 12 個快速提示,可以幫助 DBA 以可衡量的方式提高查詢性能,同時確保特定更改確實提高了查詢速度。

1. 基本查詢分析

DBA 需要了解所有層和有關(guān)昂貴查詢的信息,以便隔離根本原因。有效的調(diào)優(yōu)需要了解排名靠前的 SQL 語句、排名靠前的等待類型、SQL 計劃、阻塞的查詢、資源爭用以及缺少索引的影響。從基礎(chǔ)開始——在你投入之前準(zhǔn)確地了解你正在處理的是什么會有所幫助。

提示 1:了解您的表和行數(shù)

首先,確保您實際操作的是表,而不是視圖或表值函數(shù)。表值函數(shù)有其自身的性能影響。您可以使用 SSMS 將鼠標(biāo)懸停在查詢元素上以檢查這些詳細(xì)信息。通過查詢 DMV 檢查行數(shù)。

SQL服務(wù)器查詢調(diào)優(yōu)的三大步驟-美聯(lián)科技

技巧 2:檢查查詢過濾器、WHERE 和 JOIN 子句并注意過濾的行數(shù)

如果沒有過濾器,并且返回了大部分表,請考慮是否需要所有數(shù)據(jù)。如果根本沒有過濾器,這可能是一個危險信號,需要進(jìn)一步調(diào)查。這確實會減慢查詢速度。

技巧 3:了解表格的選擇性

根據(jù)前兩個技巧中的表格和過濾器,了解您將使用多少行,或?qū)嶋H邏輯集的大小。我們建議使用 SQL 圖表作為評估查詢和查詢選擇性的強大工具。

技巧 4:分析額外的查詢列

仔細(xì)檢查 SELECT * 或標(biāo)量函數(shù)以確定是否涉及額外的列。您帶回的列越多,使用某些索引操作的執(zhí)行計劃可能變得越不理想,而這反過來又會降低性能。

2.高級查詢分析

提示 5:了解和使用約束會有所幫助

了解和使用約束會在您開始調(diào)優(yōu)時有所幫助。查看現(xiàn)有的鍵、約束、索引,以確保避免重復(fù)工作或與已存在的索引重疊。要獲取有關(guān)索引的信息,請運行 sp_helpindex 存儲過程:

技巧 6:檢查實際執(zhí)行計劃(而非估計計劃)

估計計劃使用估計統(tǒng)計信息來確定估計行;實際計劃在運行時使用實際統(tǒng)計信息。如果實際計劃和估計計劃不同,您可能需要進(jìn)一步調(diào)查。

技巧 7:記錄您的結(jié)果,重點關(guān)注邏輯 I/O 的數(shù)量

如果您不記錄結(jié)果,您將無法確定更改的真正影響。

提示 8:根據(jù)您的發(fā)現(xiàn)調(diào)整查詢并一次進(jìn)行小的、單一的更改一次

進(jìn)行過多的更改可能是無效的,因為它們會相互抵消!首先尋找最昂貴的操作。沒有正確或錯誤的答案,只有最適合給定情況的答案。

技巧 9:重新運行查詢并記錄所做更改的結(jié)果

如果您發(fā)現(xiàn)邏輯 I/O 有所改進(jìn),但改進(jìn)還不夠,請返回技巧 8 檢查可能需要調(diào)整的其他因素。繼續(xù)一次進(jìn)行一項更改,重新運行查詢并比較結(jié)果,直到您對已解決所有可能的昂貴操作感到滿意為止。

技巧 10:如果您還需要更多改進(jìn),請考慮調(diào)整索引以減少邏輯 I/O

添加或調(diào)整索引并不總是最好的做法,但如果您不能更改代碼,這可能是唯一的選擇你可以做。您可以考慮對現(xiàn)有索引、覆蓋索引和過濾索引進(jìn)行改進(jìn)。

技巧 11:重新運行查詢并記錄結(jié)果

如果您進(jìn)行了調(diào)整,請重新運行查詢并再次記錄這些結(jié)果。

提示 12:設(shè)計出愚蠢的

Lookout 以防止經(jīng)常遇到的性能抑制因素,例如:代碼優(yōu)先生成器、濫用通配符、標(biāo)量函數(shù)、嵌套視圖、游標(biāo)和逐行處理。

3. 使用數(shù)據(jù)庫性能監(jiān)控工具來促進(jìn)查詢調(diào)優(yōu)。

傳統(tǒng)的數(shù)據(jù)庫監(jiān)控工具專注于健康指標(biāo)。當(dāng)前的應(yīng)用程序性能管理工具提供提示,但不能幫助找到根本原因。

提示:通過使用連續(xù)的數(shù)據(jù)庫性能監(jiān)控解決方案,您可以大大簡化查詢調(diào)優(yōu)。數(shù)據(jù)庫性能監(jiān)控工具的推薦包括:

SolarWinds ?數(shù)據(jù)庫性能分析器 (DPA)

SolarWinds Database Performance Analyzer (DPA) 可以將性能信息整合到一個地方。使用 DPA,您可以:

  • 識別延遲的特定查詢
  • 識別導(dǎo)致延遲的特定瓶頸(等待事件)
  • 顯示已識別瓶頸的時間影響

SolarWinds? SQL Sentry

SQL Sentry 是另一種SQL服務(wù)器性能調(diào)整工具,可以幫助您解決性能問題。使用 SQL Sentry,您可以查看歷史性能并檢測問題以更快地開始故障排除。

SQL 哨兵功能包括:

  • 深入了解過去的SQL服務(wù)器性能 – 回到過去查看發(fā)生了什么變化
  • 查看 Top SQL 查詢、阻塞和死鎖分析——查看特定時刻以更好地了解正在運行的查詢并分析阻塞詳細(xì)信息
  • 優(yōu)化查詢——使用內(nèi)置的 Plan Explorer 工具,您可以更輕松地分析查詢統(tǒng)計信息和查看查詢計劃圖
客戶經(jīng)理