婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > SQL Server數據庫性能優化技術第1/2頁

SQL Server數據庫性能優化技術第1/2頁

熱門標簽:長沙外呼系統平臺 硅基電話機器人官網 美國地圖標注軟件下載 合肥crm外呼系統加盟 電話機器人怎么看余額 西安電話自動外呼系統 怎么修改高德地圖標注 漯河電銷回撥外呼系統 城市地圖標志怎么標注
設計1個應用系統似乎并不難,但是要想使系統達到最優化的性能并不是一件容易的事。在開發工具、數據庫設計、應 
用程序的結構、查詢設計、接口選擇等方面有多種選擇,這取決于特定的應用需求以及開發隊伍的技能。本文以SQL 
Server為例,從后臺數據庫的角度討論應用程序性能優化技巧,并且給出了一些有益的建議。 

1 數據庫設計 
  要在良好的SQL Server方案中實現最優的性能,最關鍵的是要有1個很好的數據庫設計方案。在實際工作中,許多SQL 
Server方案往往是由于數據庫設計得不好導致性能很差。所以,要實現良好的數據庫設計就必須考慮這些問題。 
1.1 邏輯庫規范化問題 
  一般來說,邏輯數據庫設計會滿足規范化的前3級標準: 
  1.第1規范:沒有重復的組或多值的列。 
  2.第2規范:每個非關鍵字段必須依賴于主關鍵字,不能依賴于1個組合式主關鍵字的某些組成部分。 
  3.第3規范:1個非關鍵字段不能依賴于另1個非關鍵字段。 
  遵守這些規則的設計會產生較少的列和更多的表,因而也就減少了數據冗余,也減少了用于存儲數據的頁。但表關系 
也許需要通過復雜的合并來處理,這樣會降低系統的性能。某種程度上的非規范化可以改善系統的性能,非規范化過程可 
以根據性能方面不同的考慮用多種不同的方法進行,但以下方法經實踐驗證往往能提高性能。 
  1.如果規范化設計產生了許多4路或更多路合并關系,就可以考慮在數據庫實體(表)中加入重復屬性(列)。 
  2.常用的計算字段(如總計、最大值等)可以考慮存儲到數據庫實體中。 
  比如某一個項目的計劃管理系統中有計劃表,其字段為:項目編號、年初計劃、二次計劃、調整計劃、補列計劃…, 
而計劃總數(年初計劃+二次計劃+調整計劃+補列計劃)是用戶經常需要在查詢和報表中用到的,在表的記錄量很大時,有必 
要把計劃總數作為1個獨立的字段加入到表中。這里可以采用觸發器以在客戶端保持數據的一致性。 
  3.重新定義實體以減少外部屬性數據或行數據的開支。相應的非規范化類型是: 
  (1)把1個實體(表)分割成2個表(把所有的屬性分成2組)。這樣就把頻繁被訪問的數據同較少被訪問的數據分開了。這 
種方法要求在每個表中復制首要關鍵字。這樣產生的設計有利于并行處理,并將產生列數較少的表。 
  (2)把1個實體(表)分割成2個表(把所有的行分成2組)。這種方法適用于那些將包含大量數據的實體(表)。在應用中常 
要保留歷史記錄,但是歷史記錄很少用到。因此可以把頻繁被訪問的數據同較少被訪問的歷史數據分開。而且如果數據行 
是作為子集被邏輯工作組(部門、銷售分區、地理區域等)訪問的,那么這種方法也是很有好處的。 
1.2 生成物理數據庫 
  要想正確選擇基本物理實現策略,必須懂得數據庫訪問格式和硬件資源的操作特點,主要是內存和磁盤子系統I/O。這 
是一個范圍廣泛的話題,但以下的準則可能會有所幫助。 
  1.與每個表列相關的數據類型應該反映數據所需的最小存儲空間,特別是對于被索引的列更是如此。比如能使用 
smallint類型就不要用integer類型,這樣索引字段可以被更快地讀取,而且可以在1個數據頁上放置更多的數據行,因而 
也就減少了I/O操作。 
  2.把1個表放在某個物理設備上,再通過SQL Server段把它的不分簇索引放在1個不同的物理設備上,這樣能提高性 
能。尤其是系統采用了多個智能型磁盤控制器和數據分離技術的情況下,這樣做的好處更加明顯。 
  3.用SQL Server段把一個頻繁使用的大表分割開,并放在2個單獨的智能型磁盤控制器的數據庫設備上,這樣也可以提 
高性能。因為有多個磁頭在查找,所以數據分離也能提高性能。 
  4.用SQL Server段把文本或圖像列的數據存放在1個單獨的物理設備上可以提高性能。1個專用的智能型的控制器能進 
一步提高性能。 

2 與SQL Server相關的硬件系統 
  與SQL Server有關的硬件設計包括系統處理器、內存、磁盤子系統和網絡,這4個部分基本上構成了硬件平臺, 
Windows NT和SQL Server運行于其上。 
2.1 系統處理器(CPU) 
  根據自己的具體需要確定CPU結構的過程就是估計在硬件平臺上占用CPU的工作量的過程。從以往的經驗看,CPU配置最 
少應是1個80586/100處理器。如果只有2~3個用戶,這就足夠了,但如果打算支持更多的用戶和關鍵應用,推薦采用 
Pentium Pro或PⅡ級CPU。 

2.2 內存(RAM) 
  為SQL Server方案確定合適的內存設置對于實現良好的性能是至關重要的。SQL Server用內存做過程緩存、數據和索 
引項緩存、靜態服務器開支和設置開支。SQL Server最多能利用2GB虛擬內存,這也是最大的設置值。還有一點必須考慮的 
是Windows NT和它的所有相關的服務也要占用內存。 
  Windows NT為每個WIN32應用程序提供了4GB的虛擬地址空間。這個虛擬地址空間由Windows NT虛擬內存管理器(VMM)映 
射到物理內存上,在某些硬件平臺上可以達到4GB。SQL Server應用程序只知道虛擬地址,所以不能直接訪問物理內存,這 
個訪問是由VMM控制的。Windows NT允許產生超出可用的物理內存的虛擬地址空間,這樣當給SQL Server分配的虛擬內存多 
于可用的物理內存時,會降低SQL Server的性能。 
  這些地址空間是專門為SQL Server系統設置的,所以如果在同一硬件平臺上還有其它軟件(如文件和打印共享,應用程 
序服務等)在運行,那么應該考慮到它們也占用一部分內存。一般來說硬件平臺至少要配置32MB的內存,其中,Windows NT 
至少要占用16MB。1個簡單的法則是,給每一個并發的用戶增加100KB的內存。例如,如果有100個并發的用戶,則至少需要 
32MB+100用戶*100KB=42MB內存,實際的使用數量還需要根據運行的實際情況調整。可以說,提高內存是提高系統性能的 
最經濟的途徑。 
2.3 磁盤子系統 
  設計1個好的磁盤I/O系統是實現良好的SQL Server方案的一個很重要的方面。這里討論的磁盤子系統至少有1個磁盤控 
制設備和1個或多個硬盤單元,還有對磁盤設置和文件系統的考慮。智能型SCSI-2磁盤控制器或磁盤組控制器是不錯的選 
擇,其特點如下: 
  (1)控制器高速緩存。 
  (2)總線主板上有處理器,可以減少對系統CPU的中斷。 
  (3)異步讀寫支持。 
  (4)32位RAID支持。 
  (5)快速SCSI—2驅動。 
  (6)超前讀高速緩存(至少1個磁道)。 
3 檢索策略 
  在精心選擇了硬件平臺,又實現了1個良好的數據庫方案,并且具備了用戶需求和應用方面的知識后,現在應該設計查 
詢和索引了。有2個方面對于在SQL Server上取得良好的查詢和索引性能是十分重要的,第1是根據SQL Server優化器方面 
的知識生成查詢和索引;第2是利用SQL Server的性能特點,加強數據訪問操作。 
3.1 SQL Server優化器 
  Microsoft SQL Server數據庫內核用1個基于費用的查詢優化器自動優化向SQL提交的數據查詢操作。數據操作查詢是 
指支持SQL關鍵字WHERE或HAVING的查詢,如SELECT、DELETE和UPDATE。基于費用的查詢優化器根據統計信息產生子句的費 
用估算。 
  了解優化器數據處理過程的簡單方法是檢測SHOWPLAN命令的輸出結果。如果用基于字符的工具(例如isql),可以通過 
鍵入SHOW SHOWPLAN ON來得到SHOWPLAN命令的輸出。如果使用圖形化查詢,比如SQL Enterprise Manager中的查詢工具或 
isql/w,可以設定配置選項來提供這一信息。 
  SQL Server的優化通過3個階段完成:查詢分析、索引選擇、合并選擇。 
  1.查詢分析 
  在查詢分析階段,SQL Server優化器查看每一個由正規查詢樹代表的子句,并判斷它是否能被優化。SQL Server一般 
會盡量優化那些限制掃描的子句。例如,搜索和/或合并子句。但是不是所有合法的SQL語法都可以分成可優化的子句,如 
含有SQL不等關系符“>”的子句。因為“>”是1個排斥性的操作符,而不是1個包括性的操作符,所在掃描整個表之前無 
法確定子句的選擇范圍會有多大。當1個關系型查詢中含有不可優化的子句時,執行計劃用表掃描來訪問查詢的這個部分, 
對于查詢樹中可優化的SQL Server子句,則由優化器執行索引選擇。 
12下一頁閱讀全文
您可能感興趣的文章:
  • SQLSERVER SQL性能優化技巧
  • 開啟SQLSERVER數據庫緩存依賴優化網站性能
  • SQL SERVER性能優化綜述(很好的總結,不要錯過哦)
  • SQL Server數據庫的高性能優化經驗總結
  • Sql Server 查詢性能優化之走出索引的誤區分析
  • Sql Server查詢性能優化之不可小覷的書簽查找介紹
  • SQLServer地址搜索性能優化

標簽:濟源 商洛 玉溪 撫順 吉林 廣西 瀘州 文山

巨人網絡通訊聲明:本文標題《SQL Server數據庫性能優化技術第1/2頁》,本文關鍵詞  SQL,Server,數據庫,性能,優化,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQL Server數據庫性能優化技術第1/2頁》相關的同類信息!
  • 本頁收集關于SQL Server數據庫性能優化技術第1/2頁的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 龙游县| 鄂尔多斯市| 秦安县| 日照市| 青河县| 泾阳县| 策勒县| 泗水县| 陆丰市| 视频| 东平县| 石城县| 芦山县| 璧山县| 高邮市| 马山县| 清徐县| 仪陇县| 南丰县| 长顺县| 沙湾县| 察隅县| 南岸区| 高要市| 衡南县| 福建省| 云霄县| 江达县| 灵丘县| 商水县| 开化县| 武邑县| 巴南区| 庄浪县| 平乡县| 龙川县| 旺苍县| 仁怀市| 固安县| 拉萨市| 黄梅县|