摘要:文章主要介紹了SQL Server 2000的體系結(jié)構(gòu)、安全模式、管理數(shù)據(jù)庫文件的方法、數(shù)據(jù)的轉(zhuǎn)換、備份、還原和復(fù)制以及Transact-SQL語言設(shè)計(jì)技術(shù)。敘述了應(yīng)用系統(tǒng)存儲過程和觸發(fā)器來保證數(shù)據(jù)間的完整性和一致性的實(shí)現(xiàn)過程。重點(diǎn)對SQL Server數(shù)據(jù)庫底層的配置、管理數(shù)據(jù)、性能優(yōu)化和安全性管理進(jìn)行詳細(xì)闡述。最后,通過以上學(xué)習(xí),將SQL Server 2000和oracle數(shù)據(jù)庫的性能進(jìn)行了比較,總結(jié)出它們各自的特點(diǎn)。目前,在數(shù)據(jù)庫的實(shí)際應(yīng)用領(lǐng)域中,很多數(shù)據(jù)庫管理都還存在一定的問題,導(dǎo)致數(shù)據(jù)庫性能較差。研究此課題對于數(shù)據(jù)庫系統(tǒng)選擇和應(yīng)用有一定意義。
關(guān)鍵詞:SQL Server;Oracle;Transact-SQL;企業(yè)管理器;查詢分析器
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2009)14-3614-02
Large and Medium-sized Database Management System Performance Analysis of Differences
ZHANG Qun-hui, WANG Cong, TONG Xin
(Hunan Information Science Vocational College, Changsha 410151, China)
Abstract: The article introduces the architecture, security model, database file management method, data conversion, backup, restore and replication as well as the Transact-SQL language design. Describes the application process and the flip-flop storage to ensure data integrity and consistency between the realization of the process. Focus on the underlying SQL Server database configuration, management data, performance optimization and security management in detail. Finally, the above study, the SQL Server 2000 and oracle database performance comparison, summed up the characteristics of their own. At present, the practical application in the database field, a lot of database management are some problems still exist, resulting in poor database performance. To study the subject for the selection and application of database systems have a certain significance.
Key words: SQL Server; Oracle; Transact-SQL; Enterprise Manager; Query Analyzer
1 引言
SQL Server 2000是微軟公司最新版的大型數(shù)據(jù)庫服務(wù)器,其性能指標(biāo)在各方面都有趕超Oracle數(shù)據(jù)庫的趨勢。在經(jīng)歷了SQL Server 6.5和7.0兩個(gè)版本的嘗試之后,微軟公司終于開始向大規(guī)模的業(yè)務(wù)領(lǐng)域進(jìn)發(fā)了。微軟公司聘請了世界上最優(yōu)秀的數(shù)據(jù)庫專家而且專門搭建了信息量可謂空前龐大的地理信息系統(tǒng),勵(lì)精圖治。有了強(qiáng)大的性能和功能支持,并且徹底脫離了Sybase,它將數(shù)據(jù)庫連接到Internet,并通過Web瀏覽器顯示數(shù)據(jù)操作,具有客戶機(jī)/服務(wù)器結(jié)構(gòu),并與Microsoft公司的其他產(chǎn)品及第三方產(chǎn)品具有良好的兼容性,能方便的實(shí)現(xiàn)無縫操作。此外,SQL Server 2000還提供了對分布式事務(wù)處理的支持,為大型數(shù)據(jù)庫項(xiàng)目提供優(yōu)秀的企業(yè)級的解決方案。再配合其一向?yàn)槿朔Q道的易用性,SQL Server可以說成為了開發(fā)者手中的一柄利器。
因此,在數(shù)據(jù)庫需求日益增長的今天。學(xué)好SQL對于開發(fā)和維護(hù)數(shù)據(jù)庫,以及研究其他數(shù)據(jù)庫是非常重要的。
2 SQL Server體系結(jié)構(gòu)
SQL Server是由一系列數(shù)量眾多的數(shù)據(jù)組件組成。這些組件在功能上互相補(bǔ)充,在使用方式上彼此協(xié)調(diào),以滿足用戶在數(shù)據(jù)存儲和管理、大型Web站點(diǎn)支持和企業(yè)數(shù)據(jù)分析處理上的需求。從不同的應(yīng)用和功能角度出發(fā),SQL Server具有不同的系統(tǒng)結(jié)構(gòu)分類。具體可以劃分為:
·數(shù)據(jù)庫體系結(jié)構(gòu)
·客戶機(jī)/服務(wù)器體系結(jié)構(gòu)
·關(guān)系數(shù)據(jù)庫引擎體系結(jié)構(gòu)
·服務(wù)器管理體系結(jié)構(gòu)
其中,客戶機(jī)/服務(wù)器體系結(jié)構(gòu)又可以劃分為客戶端組件、服務(wù)器組件和通信組件三部分。用戶不用直接訪問 SQL Server進(jìn)行分析服務(wù)的,而是使用客戶應(yīng)用程序來訪問數(shù)據(jù)的??蛻舳?服務(wù)器組件體系結(jié)構(gòu)如圖1。
3 SQL Server主要功能
SQL Server充分整合Analysis Services 和資料采集(Data Mining),因而可以調(diào)整資訊,掌握機(jī)會。領(lǐng)先業(yè)界支持XML、增強(qiáng)系統(tǒng)管理和調(diào)整等工具,以及在企業(yè)和電子商務(wù)等應(yīng)用上有著可調(diào)適性和可靠性。其主要功能包括管理數(shù)據(jù)庫文件,管理的安全性,執(zhí)行管理任務(wù)等方面,具體如圖2所示。
由于篇幅的關(guān)系,在這里主要介紹SQL Server在安全方面的管理特點(diǎn)。SQL Server的安全性機(jī)制分為4個(gè)等級。
·客戶機(jī)操作系統(tǒng)的安全性
·SQL Server的登錄安全性
·數(shù)據(jù)庫的使用安全性
·數(shù)據(jù)庫對象的使用安全性
每個(gè)安全等級就好像一道門,如果門沒有上鎖或用戶擁有開門的鑰匙,則用戶可以通過這道門達(dá)到一個(gè)安全等級。如果通過了所有的門,則用戶就可實(shí)現(xiàn)對數(shù)據(jù)庫的訪問了。這個(gè)關(guān)系用圖3來表示。
4 SQL Server性能優(yōu)化
數(shù)據(jù)庫是企業(yè)信息的核心,其應(yīng)用水平的高低直接影響到企業(yè)管理水平。選擇了一個(gè)高性能的數(shù)據(jù)庫產(chǎn)品不等于就有一個(gè)好的數(shù)據(jù)庫應(yīng)用系統(tǒng),如果數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)不合理,不僅會增加客戶端和服務(wù)器端程序的編程和維護(hù)的難度,而且還會影響系統(tǒng)實(shí)際運(yùn)行的性能。
4.1 影響SQL Server性能主要因素及解決辦法
影響SQL Server數(shù)據(jù)庫性能的因素有很多。比如:在開發(fā)工具、數(shù)據(jù)庫設(shè)計(jì)、應(yīng)用程序的結(jié)構(gòu)、查詢設(shè)計(jì)、接口選擇等發(fā)面都有多種選擇,這取決于特定的應(yīng)用環(huán)境和應(yīng)用需求。平常在優(yōu)化SQL Server性能,主要從以下幾個(gè)方面著手:
·數(shù)據(jù)庫設(shè)計(jì)問題
·應(yīng)用系統(tǒng)設(shè)計(jì)
·操作系統(tǒng)相關(guān)優(yōu)化
4.2 SQL Server優(yōu)化器
SQL Server優(yōu)化器通過分析查詢語句,自動對查詢進(jìn)行優(yōu)化并決定最有效的執(zhí)行方案。主要是通過查詢分析、索引選擇、合并選擇三個(gè)階段完成的。完成以上三個(gè)過程后,優(yōu)化器就會生成一個(gè)基于費(fèi)用的查詢執(zhí)行計(jì)劃,這個(gè)計(jì)劃充分利用了可用的索引,并以最小的系統(tǒng)開支和良好的執(zhí)行性能訪問原來的數(shù)據(jù)。
4.3 SQL Server優(yōu)化應(yīng)用分析
在實(shí)際操作過程中,可以先使用SQL事件偵查器創(chuàng)建一個(gè)工作負(fù)荷文件,來跟蹤一段時(shí)間內(nèi)某個(gè)指定數(shù)據(jù)庫的活動。然后根據(jù)跟蹤記錄,使用索引優(yōu)化向?qū)韺λ饕M(jìn)行優(yōu)化。
5 SQL Server與Oracle數(shù)據(jù)庫的比較
5.1 SQL Server的優(yōu)越性
SQL Server是當(dāng)今最重要的數(shù)據(jù)庫管理系統(tǒng)之一。之所以能夠在現(xiàn)代數(shù)據(jù)庫管理系統(tǒng)行列中立于不敗之地,SQL Server有著他獨(dú)自的優(yōu)點(diǎn)。主要體現(xiàn)在以下以個(gè)方面:
1)非過程化語言
SQL是一個(gè)非過程化的語言,因?yàn)樗淮翁幚硪粋€(gè)記錄,對數(shù)據(jù)提供自動導(dǎo)航。
2)統(tǒng)一的語言
SQL可用于所有用戶的DB活動模型,包括系統(tǒng)管理員、數(shù)據(jù)庫管理員、 應(yīng)用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶。基本的SQL 命令只需很少時(shí)間就能學(xué)會,最高級的命令在幾天內(nèi)便可掌握。
3)是所有關(guān)系數(shù)據(jù)庫的公共語言
由于所有主要的關(guān)系數(shù)據(jù)庫管理系統(tǒng)都支持SQL語言,用戶可將使用SQL的技能從一個(gè)RDBMS(關(guān)系數(shù)據(jù)庫管理系統(tǒng))轉(zhuǎn)到另一個(gè),所有用SQL編寫的程序都是可以移植的。
5.2 Oracle數(shù)據(jù)庫介紹
Oracle9i是業(yè)界第一個(gè)完整、簡單的用于互聯(lián)網(wǎng)的新一代智能化的、協(xié)作各種應(yīng)用的軟件基礎(chǔ)架,其主要特點(diǎn)體現(xiàn)在:
1)支持大數(shù)據(jù)庫、多用戶的高性能的事務(wù)處理。
2)ORACLE遵守?cái)?shù)據(jù)存取語言、操作系統(tǒng)、用戶接口和網(wǎng)絡(luò)通信協(xié)議的工業(yè)標(biāo)準(zhǔn)。
3)實(shí)施安全性控制和完整性控制。
4)支持分布式數(shù)據(jù)庫和分布處理。
5)具有可移植性、可兼容性和可連接性。
5.3 兩種數(shù)據(jù)庫的比較結(jié)果
通過對SQL Server數(shù)據(jù)庫的學(xué)習(xí)和Oracle數(shù)據(jù)庫的查閱??偨Y(jié)出兩種數(shù)據(jù)庫大致區(qū)別,如下所示:
1)開放性
SQL Server:只能在Windows下運(yùn)行,沒有絲毫的開放性。
Oracle:能在所有主流平臺上運(yùn)行(包括 Windows)。完全支持所有的工業(yè)標(biāo)準(zhǔn)。采用完全開放策略??梢允箍蛻暨x擇最適合的解決方案。對開發(fā)商全力支持。
2)可伸縮性和并行性
SQL Server:并行實(shí)施和共存模型并不成熟,很難處理日益增多的用戶數(shù)和數(shù)據(jù)卷,伸縮性有限。
Oracle:平行服務(wù)器通過使一組結(jié)點(diǎn)共享同一簇中的工作來擴(kuò)展Window NT的能力,提供高可用性和高伸縮性的簇的解決方案。如果WindowsNT不能滿足需要, 用戶可以把數(shù)據(jù)庫移到UNIX中。
3)安全性
SQL server:沒有獲得任何安全證書。
Oracle Server:獲得最高認(rèn)證級別的ISO標(biāo)準(zhǔn)認(rèn)證。
4)性能
SQL Server:多用戶時(shí)性能不佳,C/S結(jié)構(gòu),只支持Windows客戶,可以用ADO,DAO,OLEDB,ODBC連接。
Oracle:性能最高, 保持WindowsNT下的TPC-D和TPC-C的世界記錄。多層次網(wǎng)絡(luò)計(jì)算,支持多種工業(yè)標(biāo)準(zhǔn),可以用ODBC,JDBC,OCI等網(wǎng)絡(luò)客戶連接。
5)操作簡便
SQL Server:操作簡單,但只有圖形界面。
Oracle:較復(fù)雜, 同時(shí)提供GUI和命令行,在Windows NT和Unix下操作相同。
6)使用風(fēng)險(xiǎn)
SQL Server:完全重寫的代碼,經(jīng)歷了長期的測試,不斷延遲,許多功能需要時(shí)間來證明。并不十分兼容早期產(chǎn)品。使用需要冒一定風(fēng)險(xiǎn)。
Oracle:長時(shí)間的開發(fā)經(jīng)驗(yàn),完全向下兼容。得到廣泛的應(yīng)用。完全沒有風(fēng)險(xiǎn)。
以上是SQL Server與Oracle數(shù)據(jù)庫之間較為粗略的比較。具體要考慮該使用什么軟件時(shí),還要根據(jù)自己的業(yè)務(wù)需求和基礎(chǔ)設(shè)施來綜合考慮。
6 數(shù)據(jù)庫系統(tǒng)回顧與展望
縱觀當(dāng)今的商用數(shù)據(jù)庫市場,稱之為群雄割據(jù)毫不為過。自20世紀(jì)70年代關(guān)系模型提出后,由于其突出的優(yōu)點(diǎn),迅速被商用數(shù)據(jù)庫系統(tǒng)所采用。據(jù)統(tǒng)計(jì),70年代以來新發(fā)展的DBMS系統(tǒng)中,近百分之九十是采用關(guān)系數(shù)據(jù)模型, 80年代和90年代是RDBMS產(chǎn)品發(fā)展和競爭的時(shí)代。各種產(chǎn)品經(jīng)歷了從集中到分布,從單機(jī)環(huán)境到網(wǎng)絡(luò)環(huán)境,從支持信息管理到聯(lián)機(jī)事務(wù)處理(OLTP),再到聯(lián)機(jī)分析處理(OLAP)的發(fā)展過程;對關(guān)系模型的支持也逐步完善;系統(tǒng)的功能也不斷增強(qiáng)。
Oracle9i已經(jīng)出爐,它增強(qiáng)了針對電子商務(wù)的新特性,和對因特網(wǎng)應(yīng)用的支持,提供了對大數(shù)據(jù)量的在線事務(wù)處理(OLTP)環(huán)境、查詢密集型數(shù)據(jù)倉庫以及要求苛刻的互聯(lián)網(wǎng)應(yīng)用的高效、可靠及安全的數(shù)據(jù)管理能力。
SQL Server 2000的下一代產(chǎn)品YuKon預(yù)計(jì)在今年推出。YuKon主要增強(qiáng)的特性大概是集群,每個(gè)服務(wù)器自己進(jìn)行數(shù)據(jù)處理、管理內(nèi)存、加鎖和事務(wù)處理,與此同時(shí)保持與集群中其他及其的內(nèi)部聯(lián)系,能做到集群中一臺機(jī)器不能工作,不會影響整個(gè)系統(tǒng)的工作。
7 結(jié)束語
在信息量日益增多的今天,數(shù)據(jù)的管理及安全問題已成為眾多企業(yè)的“頭等大事”。隨之而來的,是眾多大中型數(shù)據(jù)庫管理系統(tǒng)相繼推出,選擇一個(gè)好的數(shù)據(jù)庫系統(tǒng)能在某種程度上來彌補(bǔ)企業(yè)數(shù)據(jù)管理上的一些不足。有鑒于此,本文詳細(xì)分析了SQL Server數(shù)據(jù)庫管理系統(tǒng)的原理,無論是從其安全性能方面,還是從其操作方面來說,SQL Server數(shù)據(jù)庫基本能滿足多數(shù)企業(yè)用戶的需要。特別是在安全等級方面,通過圖文并茂的方式得以體現(xiàn),讓用戶一看就懂,希望能對讀者了解SQL Server數(shù)據(jù)庫帶來幫助。
參考文獻(xiàn):
[1] Microsoft.企業(yè)級數(shù)據(jù)庫的安裝、配置和管理[M].北京:高等教育出版社,2003.8.
[2] 李真文.SQL Server 2000開發(fā)人員指南[M].北京:北京希望電子出版社.2001.5.
[3] Microsoft.SQL Server 2000系統(tǒng)管理[M].北京:清華大學(xué)出版社,2001.11.
[4] 李曉喆,張曉輝,李祥勝.SQL Server2000管理及應(yīng)用系統(tǒng)開發(fā)[M].北京:人民郵電出版社,2002.12.
[5] 劉耀儒.新概念SQL Server 2000教程[M].北京:北京科海集團(tuán)公司出版,2000.9.
[6] 薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,2001.7.
[7] (美)Mike Gundenloy Joseph l.Jorden.SQL Server 2000從入門到提高[M].北京:外文出版社,2001.3.
[8] (美)Microsoft.SQL Server 2000 Transact-SQL和技術(shù)參考手冊(上下)[M].北京:科學(xué)出版社,2001.5.