- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
microsoft sql server最佳化程式設計指南 -
Microsoft SQL Server最佳化程式設計指南
前言
要設計具備高效能的Microsoft SQL?Server應用程式是一門牽涉極廣的學問,這當中涵蓋了開發工具的熟悉程度、資料庫的設計、應用程式的結構、SQL敘述的設計、程式介面的決定等等。而且各個項目所佔的比重,也會因為應用環境的不同,對程式的需求,開發團隊的成員及偏好而有所差異。問題是我們多半沒有足夠的時間去嘗試所有的可能性,來決定那一種安排會是最適當的選擇。我們甚至沒什麼時間來研讀所有的手冊或資料來進行判斷,在這樣的情況下,我們該如何起步,才不至偏離合理的方向太遠?
所幸要設計效能良好的SQL?Server應用程式有幾種不同的方法,我們可以選擇任何一種,而依舊有很大的機會讓自己的應用程式能有良好的表現。但是,這不代表我們就不需要知道一些基本的觀念,事實上,當我們越能夠掌握一些基本的概念和設計原則,我們就有越好的判斷能力來選擇適當的開發方式。在這篇文章中,我們就是希望能提出一些基本的方法,協助您能擁有做出正確判斷的基礎,並更進一步開發出高效能的應用程式。
在開發主從式架構的應用程式中,我們首先面對的問題就是決定要在何處執行我們的應用程式。是不是大多數的工作都必須在前端工作站上完成,或是應該在資料庫中就處理完成,或者應該交由其他的伺服器集中進行?而這個問題當中同時隱含了另外一個問題,就是該選擇什麼樣的開發工具。一旦我們決定了所採用的編譯程式、除錯程式或是執行的平台等產品時,多半也會限制了開發架構的選擇。因此,我們必須同時決定開發的架構以及所採用的工具。在這裡,我們會先談到三層式的開發架構,然後再討論四種建立這類架構的方法。在這個同時,我們也會討論到在該架構下,資料庫實際的製作方式,包括資料庫存取的型式、使用者介面的最佳化處理,以及善用SQL?Server內建功能的秘訣。
三層式架構
三層式架構基本型式
從理論上來看,三層式架構主要劃分成三個不同的元件,如圖一。
資料服務
這部份的服務主要在提供資料儲存、對照及資料整合性驗證的服務。例如確認客戶編號的合理性,或是檢查客戶資料表和訂單資料表之間的對照關係是否正確。
商業服務
這部份的服務主要是在處理各類商業規則的判斷,以及商業運作上所牽涉到的資料處理工作。例如新增客戶的訂單,同時並檢核訂單金額是否在客戶的信用額度之內。
使用介面服務
這部份的服務主要在處理使用者介面的操作,包括資料輸入的方式、資料呈現的方式等等。例如,顯示特定客戶的所有訂單,或是顯示各個客戶近半年來的交易金額分析圖等等。
在導入應用程式時,我們有許多做法來安排這些負責不同服務的元件實際安裝在各個機器上的方式。接下來我們就提出四種實際製作的方式,來達成三層式架構的設計目標。
以前端工作站為主的兩層式設計
以後端伺服器為主的兩層式設計
實體三層式設計
Internet設計
以前端工作站為主的兩層式設計
在決定設計架構時,構成實作方式差異的最主要因素是在商業服務的設計位置上。傳統的設計多半是以兩層的方式設計,而把商業服務的運算工作安排到前端工作站上。在這種架構中,伺服器只有提供SQL Server的資料庫服務。目前市面上多數利用Microsoft Visual Basic或是 PowerBuilder開發的系統都是屬於這類架構。圖二是這個架構的示意圖。
圖二 以前端工作站為主的兩層式架構
針對這種設計架構的一個改進方式是把商業服務的程式碼包裝成COM的物件,以提供充份的重複運用能力。我們可以利用Visual Basic設計類別(class)的方式來包裝商業服務,然後在其他的Visual Basic應用程式中使用這些商業服務元件。雖然說把負責使用者介面處理的應用程式和負責商業規則處理的元件放在同一台前端工作站上執行仍然算是兩層式的架構,但是將程式碼分隔之後,卻可以讓我們很輕易的把這樣的程式轉變成實體三層式的設計。稍後我們會討論這部份的設計方式。
採用這種以前端工作站為主的兩層式設計最大的好處在於支援這種架構的工具都具備相當有威力的特性,而且在市場上也有較多的選擇。當然,這種架構並不是毫無缺點,其中的一個缺點就是可能形成較多的網路流量,因為所有構成決定依據的資料都必須傳送到前端工作站才能夠進行判斷。不過,從儲存處理狀態─例如使用者目前所瀏覽到的記錄─的角度來看,前端工作站會是比較適當的場所。
以後端伺服器為主的兩層式設計
在以後端伺服器為主的兩層式設計中,商業運作邏輯和資料處理都是在伺服器的資料庫中進行。一般來說,這些商業運作邏輯多半是以stored procedure或trigger的方式表現。圖三是這個架構的示意圖。
圖三 以伺服器為主的兩層式設計
這種類型的開發架構比較令人困擾的部份在於商業運作邏輯的設計上,必須藉助對SQL敘述相當熟嫻的設計
您可能关注的文档
最近下载
- 数学中考总复习.doc VIP
- 限制型心肌病超声诊断与评估.pptx
- _【课件】第四章 三角形 +问题解决策略:特殊化课件北师大版七年级数学下册.pptx VIP
- 中考数学总复习第一轮考点复习(重庆专版).pptx VIP
- 2025在线网课《信息检索与科技写作( 理大)》单元测试考核答案.pdf VIP
- 高频精选:京东快递员ai面试题及答案.doc VIP
- 新北师大版初中七年级数学下册《第四章三角形问题解决策略:特殊化(1)》教学课件.pptx VIP
- 河北 2023年农信社储蓄知识考试真题模拟汇编(共213题).doc VIP
- 河北 2023年农信社基础知识考试真题模拟汇编(共672题).doc VIP
- 四川省宜宾市2023-2024学年高一下学期期末学业质量监测语文试卷(原卷版+解析版).docx VIP
文档评论(0)