欢迎来到天天文库
浏览记录
ID:14470192
大小:137.00 KB
页数:12页
时间:2018-07-28
《server最佳化程式设计指南》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MicrosoftSQLServer最佳化程式設計指南前言要設計具備高效能的MicrosoftSQL Server應用程式是一門牽涉極廣的學問,這當中涵蓋了開發工具的熟悉程度、資料庫的設計、應用程式的結構、SQL敘述的設計、程式介面的決定等等。而且各個項目所佔的比重,也會因為應用環境的不同,對程式的需求,開發團隊的成員及偏好而有所差異。問題是我們多半沒有足夠的時間去嘗試所有的可能性,來決定那一種安排會是最適當的選擇。我們甚至沒什麼時間來研讀所有的手冊或資料來進行判斷,在這樣的情況下,我們該如何起步,才不至偏離合理的方向太遠?所幸要設計效能良好的SQL Server應用
2、程式有幾種不同的方法,我們可以選擇任何一種,而依舊有很大的機會讓自己的應用程式能有良好的表現。但是,這不代表我們就不需要知道一些基本的觀念,事實上,當我們越能夠掌握一些基本的概念和設計原則,我們就有越好的判斷能力來選擇適當的開發方式。在這篇文章中,我們就是希望能提出一些基本的方法,協助您能擁有做出正確判斷的基礎,並更進一步開發出高效能的應用程式。在開發主從式架構的應用程式中,我們首先面對的問題就是決定要在何處執行我們的應用程式。是不是大多數的工作都必須在前端工作站上完成,或是應該在資料庫中就處理完成,或者應該交由其他的伺服器集中進行?而這個問題當中同時隱含了另外一個問
3、題,就是該選擇什麼樣的開發工具。一旦我們決定了所採用的編譯程式、除錯程式或是執行的平台等產品時,多半也會限制了開發架構的選擇。因此,我們必須同時決定開發的架構以及所採用的工具。在這裡,我們會先談到三層式的開發架構,然後再討論四種建立這類架構的方法。在這個同時,我們也會討論到在該架構下,資料庫實際的製作方式,包括資料庫存取的型式、使用者介面的最佳化處理,以及善用SQL Server內建功能的秘訣。三層式架構三層式架構基本型式從理論上來看,三層式架構主要劃分成三個不同的元件,如圖一。三層式架構資料庫服務商業服務操作介面服務儲存資料,維護整合性資料運算,檢核資料顯示資料,輸
4、出入檢查資料服務這部份的服務主要在提供資料儲存、對照及資料整合性驗證的服務。例如確認客戶編號的合理性,或是檢查客戶資料表和訂單資料表之間的對照關係是否正確。商業服務這部份的服務主要是在處理各類商業規則的判斷,以及商業運作上所牽涉到的資料處理工作。例如新增客戶的訂單,同時並檢核訂單金額是否在客戶的信用額度之內。使用介面服務這部份的服務主要在處理使用者介面的操作,包括資料輸入的方式、資料呈現的方式等等。例如,顯示特定客戶的所有訂單,或是顯示各個客戶近半年來的交易金額分析圖等等。在導入應用程式時,我們有許多做法來安排這些負責不同服務的元件實際安裝在各個機器上的方式。接下來我
5、們就提出四種實際製作的方式,來達成三層式架構的設計目標。o以前端工作站為主的兩層式設計o以後端伺服器為主的兩層式設計o實體三層式設計oInternet設計以前端工作站為主的兩層式設計在決定設計架構時,構成實作方式差異的最主要因素是在商業服務的設計位置上。傳統的設計多半是以兩層的方式設計,而把商業服務的運算工作安排到前端工作站上。在這種架構中,伺服器只有提供SQLServer的資料庫服務。目前市面上多數利用MicrosoftVisualBasic或是PowerBuilder開發的系統都是屬於這類架構。圖二是這個架構的示意圖。圖二以前端工作站為主的兩層式架構針對這種設計架
6、構的一個改進方式是把商業服務的程式碼包裝成COM的物件,以提供充份的重複運用能力。我們可以利用VisualBasic設計類別(class)的方式來包裝商業服務,然後在其他的VisualBasic應用程式中使用這些商業服務元件。雖然說把負責使用者介面處理的應用程式和負責商業規則處理的元件放在同一台前端工作站上執行仍然算是兩層式的架構,但是將程式碼分隔之後,卻可以讓我們很輕易的把這樣的程式轉變成實體三層式的設計。稍後我們會討論這部份的設計方式。採用這種以前端工作站為主的兩層式設計最大的好處在於支援這種架構的工具都具備相當有威力的特性,而且在市場上也有較多的選擇。當然,這種
7、架構並不是毫無缺點,其中的一個缺點就是可能形成較多的網路流量,因為所有構成決定依據的資料都必須傳送到前端工作站才能夠進行判斷。不過,從儲存處理狀態─例如使用者目前所瀏覽到的記錄─的角度來看,前端工作站會是比較適當的場所。以後端伺服器為主的兩層式設計在以後端伺服器為主的兩層式設計中,商業運作邏輯和資料處理都是在伺服器的資料庫中進行。一般來說,這些商業運作邏輯多半是以storedprocedure或trigger的方式表現。圖三是這個架構的示意圖。圖三以伺服器為主的兩層式設計這種類型的開發架構比較令人困擾的部份在於商業運作邏輯的設計上,必須藉助對SQL敘
此文档下载收益归作者所有