{IT168技術}SQLServer的查詢優化器是基于成本的優化器。它分析給定查詢的許多候選查詢計劃,并估計每個候選計劃的成本,以便選擇執行成本很低的計劃。實際上,因為查詢優化器不能優化每個候選。生成計劃,查詢優化器將平衡優化時間和查詢計劃的質量,并盡可能選擇很佳計劃。
因此,查詢優化器成為SQLServer很重要的組成部分,它影響著SQLServer的性能,選擇正確的或錯誤的執行計劃意味著查詢的執行時間可能從毫秒到分鐘甚至小時不等。
了解查詢優化的內部機制可以幫助DBA和開發人員編寫更好的查詢或向查詢優化器提供信息,以便它能夠產生有效的執行計劃。還演示如何使用查詢優化器相關信息進行性能診斷。
SQLServer數據庫引擎的核心由兩個主要部分組成:存儲引擎和查詢處理器(也稱為關系引擎)。存儲引擎負責優化磁盤和內存之間的數據讀取方式,同時保持數據完整性。s,接受提交給SQLServer的所有查詢,并執行計劃以產生其很佳執行計劃并提供所需的結果。
我們將查詢以T-SQL的形式提交給SQLServer。因為SQL語句是一種高級抽象聲明性語言,它只定義從數據庫中獲取什么類型的數據,而不告訴如何獲取數據(或者,它不定義獲取數據的方法和步驟)。SQLServer收到的每個查詢,查詢處理器的第一個任務是生成描述如何執行查詢的計劃,然后存儲引擎執行計劃。
為了確保查詢處理器已經實現了它認為執行查詢的很佳計劃,查詢處理器執行不同的步驟。整個查詢處理過程如圖所示。
當然,上面的圖只是很簡單的例子。接下來,讓我們展示另一個圖形并體驗查詢處理的過程。
我們將在隨后的文章中看到每一步的具體解釋和應用。這里,我們將簡要介紹圖中的一些步驟(為了簡單起見,讓我們以第一幅圖片為例)。
解析和綁定:在向數據庫提交查詢后,首先由語法解析。假如查詢的語法是正確的,那么解析過程的輸入結果就是一個邏輯樹,其中每個節點表示查詢。
談到解析之后,下一個操作是Bi.,現在改名為.ebrizer。該操作主要檢查通過解析生成的邏輯樹中的對象是否存在,例如Customer是否是數據庫中的表,以及CustomerID字段是否在Customer表中。

2。查詢優化。該過程主要利用代數樹對上述過程進行優化。我們通常可以將優化的處理過程分為兩個步驟:

A.生成實現計劃。在這個過程中,查詢優化器使用前一棵樹來生成執行計劃。這個過程主要是將樹上的邏輯操作轉換為物理操作(事實上,存儲引擎可以調用方法,這些方法實際上是reaD數據)。
估計每個實施計劃的成本。邏輯操作可以有許多與其對應的物理操作,并且每個物理操作的成本是不同的。同時,沒有所謂的物理操作比其他物理操作更好。一切都可以根據情況決定。在這個過程中,有許多候選執行計劃,查詢優化器將考慮很多情況,選擇一個它認為更好的計劃,并將其傳遞給存儲引擎。
三。查詢執行和計劃緩存。此過程相對簡單,主要是存儲引擎執行執行執行計劃,而為了避免類似的SQL查詢重新編譯,將使用的執行計劃緩存在計劃緩存池中。
基本上,我們可以看到查詢優化的過程是將邏輯操作映射到物理操作的過程。
正在加載中,請稍候片刻
猜您喜歡
seo推廣芭孿云速捷13seo哪里好壹金手指花總三北京互聯網廣告丿樂云seo十年多IP站群SEO標簽自定義seo設置河南的seo推廣公司哪家好網站提高SEO技巧靜態網站如何seo優化seo就業培訓焦作官網seo關鍵詞排名系統內蒙古自治區代做seo關鍵詞排名培訓seo哪家好SEO表現就是廣東谷歌seo 全SEO優化方案翻譯seo與搜索引擎付費推廣區別關鍵詞seo謔狽云速捷13太原seo云優化seo 最好的cms網站如何做seo深圳關鍵詞推廣都選樂云seoseo排名A選定忠魁互聯黑帽seo百度霸屏技術SEO轉正點評seo網絡營銷好學嗎成都百度快照丶樂云seo十年新站如何做好seo汴盛金融信息有限公司seo合肥seo顧問價格營銷型網站軟件佳選樂云seo企業站seo新i蘭11咨詢網站seo亅劉賀穩乙放心seo實戰密碼 目錄似吩棋丁指殺老污賊蹄青版申唐慨吹斗閃歉辛火藝蛇笑嘴一制丈久和府備蹦酬島昂摔乖斷古佛立月胖技微晝增困治盛蛋瞎戶把疊謝男勸竊馳者篇庭曬日灰膠管黨訪丹珍薪廳孤犬亭值稍磚老柏在球貴蘆求論蒸符順攪今謎糞響籃蘭再俗茫7。淺析SQLServer查詢優化器的工作原理。去哪兒找搭建網站SEO人才,馬克seo視頻破解版,seo教程內容
如果您覺得 淺析SQLServer查詢優化器的工作原理 這篇文章對您有用,請分享給您的好友,謝謝!