熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows系統管理 >> 正文

數據庫查詢處理器的特性

2022-06-13   來源: Windows系統管理 

  用戶需求
  
  數據庫技術的發展呈現出了兩個顯著的發展趨勢一方面數據庫任務的管理和操作愈來愈自動化智能化許多以前需要手工完成的操作和配置等數據庫管理工作現在都可以使用圖形界面工具和向導來完成大大減輕了用戶在數據庫管理中的工作量使用戶有更多的時間和精力把自己的工作做的更好另一方面對於那些難以實現或者沒有必要實現自動化的操作例如某些復雜的數據庫檢索等工作則盡可能地集中在同樣的圖形化界面中來完成這樣在同一個窗口中用戶可以完成更多的不同類型的操作並且從該窗口中可以得到更多的有價值的信息可以顯著地減輕用戶在不同窗口界面之間的轉換和查詢相關信息的工作量
  
  最新的關系型數據庫管理系統SQL Server 充分體現了這種發展趨勢與以前的版本相比SQL Server的新版本有了許多改進例如自動的服務器配置新的數據庫存儲引擎增加了許多向導等另外一方面在查詢處理器中體現出了集中管理和操作的趨勢在處理器中不單可以完成普通的TransactSQL語句的操作還可以完成圖形化的執行規劃的優化工作在該處理器中使用了新的查詢規劃算法可以大大提高查詢語句的執行速度提高了系統的性能
  
  特性概述
  
   查詢處理器是一種可以完成許多工作的多用途的工具在查詢處理器中可以交互式地輸入和執行各種TransactSQL語句並且在一個窗口中可以同時查看TransactSQL語句和其結果集可以在查詢處理器中同時執行多個TransactSQL語句也可以執行腳本文件中的部分語句提供了一種圖形化分析查詢語句執行規劃的方法可以報告由查詢處理器選擇的數據檢索方法並且可以根據查詢規劃調整查詢查詢語句的執行提出執行可以提高性能的優化的索引建議
  
  具體地說查詢處理器有以下的特點和優點
  
  彩色代碼編輯器
  可以交互式地執行各種TransactSQL語句
  多查詢窗口每一個查詢窗口都有自己的連接
  可以定制選擇結果集的查看方式
  支持上下文敏感的幫助系統
  可以選擇執行腳本文件中的全部內容或者部分內容
  圖形化地顯示執行規劃可以分析執行規劃並且提出建議
  支持根據執行規劃優化的可以提高性能的索引
  支持新的查詢規劃算法改進了的成本模型和規劃選擇模型加快查詢進程的速度
  支持新的散列連接連接和和合並連接算法可以使用多索引操作
  支持單個查詢語句在多個處理器上的並行執行
  支持使用OLE DB的分布式的和多機種環境的查詢
  交互式操作
  
  在數據庫管理系統中雖然數據庫技術有了很大的發展提供了許多工具和向導但是仍然有許多管理和操作不能依靠圖形界面來完成還必須使用交互式命令來執行年E F Code發表了題為大型共享數據庫的數據關系模型以來確立了結構化查詢語言(SQL)在關系數據庫中的重要地位目前許多關系型數據庫供應商都在自己的數據庫中采用了SQL語言當前最新的SQL語言是ANSI SQL
  
  TransactSQL語句是微軟在SQL Server數據庫中的ANSI SQL的實現在SQL Server數據庫中TransactSQL語句由四個部分組成第一部分是數據控制語言(DCL)語句用來進行安全性管理可以確定哪些用戶可以查看或者修改數據這些語句包括GRANTDENYREVOKE等語句第二部分是數據定義語言(DDL)語句用來執行數據庫的任務創建數據庫以及數據庫中的各種對象這些語句包括CREATEALTERDROP等語句第三部分是數據操縱語言(DML)語句用來在數據庫中操縱各種對象檢索和修改數據這些語句包括SELECTINSERTUPDATEDELETE等第四部分不是ANSI SQL的內容而是TransactSQL語句的附加的語言元素這些語言元素包括變量運算符函數流程控制語言和注釋
  
  這些TransactSQL語句都可以在查詢處理器中交互式執行在這個查詢處理器中使用了彩色代碼元素編輯器這樣在該處理器中寫查詢語句時SQL Server系統自動將該查詢語句中的關鍵字等SQL語言元素使用不同的顏色標示出來可以醒目地檢查這些語句的語法是否正確另外這種著重顯示的顏色用戶也可以根據自己的需要進行定制
  
  對於查詢語句的結果集可以選擇不同的顯示方式既可以使用象以前版本中的那種表格形式顯示結果集也可以選擇使用網格形式來顯示結果集如果使用網格形式來顯示結果集那麼用戶完全可以象使用表一樣操縱這些結果集中的內容這些查詢語句和結果集可以根據需要存儲在腳本文件中
  
  查詢處理器提供了多個查詢窗口這些同時打開的查詢窗口都是分別表示一個線程即分別對應一個用戶連接因此在這些查詢窗口中窗口都是互相獨立的窗口中的內容都是獨立執行的另外當打開多個查詢窗口時由於每一個查詢窗口對應一個用戶連接並且每一個用戶連接都要占用一定數量的系統資源因此打開的查詢窗口愈多占用的系統資源也愈多
  
  可以在查詢處理器中執行腳本文件中的內容腳本文件是存放許多TransactSQL語句的操作系統文件在查詢處理器中既可以執行該腳本文件中的全部TransactSQL語句內容也可以根據需要選擇一部分TransactSQL語句來執行
  
  在這個查詢處理器中支持新的查詢規劃算法改進了的成本模型和規劃選擇模型可以大大加快對龐大數據庫查詢進程的速度還支持新的散列連接連接和和合並連接算法可以使用多索引操作也可以提高查詢性能
  
  執行規劃
  
  執行規劃的概念
  
  可以使用查詢處理器來為將要執行的查詢語句構造一個執行規劃執行規劃就是一系列的產生查詢語句所要求結果的步驟現在舉一個例子說明什麼是執行規劃例如
  
  Select * From customer Order By custid
  
  在上面這個查詢語句中表示從表customer中檢索出全部的內容並且根據列custid進行排序一般情況下該查詢語句可能會產生下面的執行規劃步驟
  
  第一步掃描表customer主鍵的聚簇索引
  
  第二步根據列custid對在第一步中得到的查詢結果進行排序
  
  第三步把在第二步中得到的結果返回給應用程序
  
   查詢處理器使用存儲在數據庫表中的有關統計信息來確定選用的產生最終結果的最有效的方法這種方法該查詢語句的執行規劃
  
  如何訪問數據庫中的數據
  
  為了能更好地理解查詢語句的執行規劃看一看查詢語句是如何訪問數據庫中的數據的一般地系統訪問數據庫中的數據可以使用兩種方法第一種方法是表掃描就是指系統將指針放置在該表的表頭數據所在的數據頁上然後按照數據頁的排列順序一頁一頁地從前向後掃描該表數據所占有的全部數據頁直至掃描完表中的全部記錄在掃描時如果找到符合查詢條件的記錄那麼就將這條記錄挑選出來最後將全部挑選出來符合查詢語句條件的記錄顯示出來第二種方法是使用索引查找索引是一種樹狀結構其中存儲了關鍵字和指向包含關鍵字所在記錄的數據頁的指針當使用索引查找時系統沿著索引的樹狀結構根據索引中關鍵字和指針找到符合查詢條件的的記錄最後將全部查找到的符合查詢語句條件的記錄顯示出來
  
  在SQL Server中當訪問數據庫中的數據時由SQL Server確定該表中是否有索引存在如果沒有索引那麼SQL Server使用表掃描的方法訪問數據庫中的數據那麼查詢處理器根據分布的統計信息生成該查詢語句的優化執行規劃以提高訪問數據的效率為目標確定是使用表掃描還是使用索引
  
  統計信息
  
  系統為每一個索引創建一個分布頁統計信息就是指存儲在分布頁上的某一個表中的一個或者多個索引的關鍵值的分布信息當執行查詢語句時為了提高查詢速度和性能系統可以使用這些分布信息來確定使用表的哪一個索引查詢處理器就是依賴於這些分布的統計信息來生成查詢語句的執行規劃執行規劃的優化程度依賴於這些分布統計信息的准確步驟的高低程度如果這些分布的統計信息與索引的物理信息非常一致那麼查詢處理器可以生成優化程度很高的執行規劃相反如果這些統計信息與索引的實際存儲的信息相差比較大那麼查詢處理器生成的執行規劃的優化程度則比較低
  
  一般地分布的統計信息與索引的實際存儲的信息是比較一致的但是當對某一個表有大量的數據操作時特別是在被索引的列上有大量的數據被增加修改或者刪除那麼索引的實際存儲信息就發生了比較大的變化這時索引中關鍵字的分布統計信息就與實際情況有大的差別因此為了提高關鍵字的分布統計信息的准確程度當表中的數據有比較大的操作變化時應該針對表中的全部索引或者一個索引執行UPDATE STATISTICS語句這樣系統重新計算關鍵字的分布統計信息提高執行規劃的優化程度和訪問數據的效率
  
  圖形化的執行規劃
  
   查詢處理器從統計信息中提取索引關鍵字的分布信息除了用戶可以手工執行UPDATE STATISTICS之外查詢處理器還可以自動收集統計這些分布信息這樣就能夠充分保證查詢處理器使用最新的統計信息保證執行規劃具有很高的優化程度減少了維護的需要
  
  在以前的SQL Server中使用SHOWPLAN方法允許用戶查看某一個特定語句的處理器所創建的執行規劃用戶可以根據這些信息來確定如何提高該查詢語句的性能例如修改查詢語句的結構增加另外的數據庫索引在SQL Server 查詢處理器可以提供某一個語句的執行規劃的圖形化表示在查詢處理器中每一個圖標表示執行規劃中的一個步驟可以在圖標之間移動光標
From:http://tw.wingwit.com/Article/os/xtgl/201311/8872.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.