崔鵬
摘 要:SQL Server數(shù)據(jù)庫是一個(gè)系統(tǒng)軟件,主要功能是對關(guān)系數(shù)據(jù)庫進(jìn)行綜合性管理,由于數(shù)據(jù)庫在進(jìn)行管理時(shí)具有功能多、用戶界面美觀等優(yōu)點(diǎn)受到社會各界人士的喜愛。因此SQL Server數(shù)據(jù)庫的使用范圍很廣,本文首先對數(shù)據(jù)庫進(jìn)行了簡單的介紹,然后從查詢機(jī)巧、安全技巧、修復(fù)技巧和備份技巧四方面進(jìn)行分析,對SQL Server數(shù)據(jù)庫的應(yīng)用技巧進(jìn)行探究。
關(guān)鍵詞:SQL Server ?數(shù)據(jù)庫 ?應(yīng)用技巧
Microsoft SQL Server是由Microsoft公司研發(fā)的一種基于C/S架構(gòu)的數(shù)據(jù)庫管理系統(tǒng)。該系統(tǒng)在運(yùn)行的過程中采用單進(jìn)程、多線程技術(shù),從而實(shí)現(xiàn)對所有數(shù)據(jù)的控制和管理,而且其在數(shù)據(jù)管理時(shí)可以保證數(shù)據(jù)的安全性,因此其受到社會各界人士的喜愛,也是在進(jìn)行應(yīng)用軟件系統(tǒng)編程中最為常用的一種數(shù)據(jù)庫。SQL Server本身的功能就是數(shù)據(jù)存儲,能夠與Windows系統(tǒng)兼容。SQL Server數(shù)據(jù)庫可以存儲各種類型的數(shù)據(jù),如用戶應(yīng)用程序首選項(xiàng)、安全日志等,在進(jìn)行數(shù)據(jù)訪問時(shí)需要具有相對應(yīng)授權(quán)的用戶,這樣可以有效保證整個(gè)數(shù)據(jù)庫內(nèi)數(shù)據(jù)的安全性。
SQL Server數(shù)據(jù)庫中存儲著海量的信息,使用該軟件要用到四種技巧。如在進(jìn)行數(shù)據(jù)查詢時(shí)采用一定的技巧能夠有效提高查詢效率;安全技巧能夠有效保證數(shù)據(jù)庫數(shù)據(jù)的安全性;修復(fù)技巧能夠當(dāng)數(shù)據(jù)庫發(fā)生損壞時(shí)進(jìn)行數(shù)據(jù)恢復(fù);備份技巧能夠?qū)?shù)據(jù)庫中的數(shù)據(jù)進(jìn)行備份,以下就針對這四種應(yīng)用技巧進(jìn)行具體分析。
在對數(shù)據(jù)庫進(jìn)行查詢時(shí),為了保證所查詢結(jié)果的正確性,查詢技巧主要有以下幾個(gè)方面。
第一,盡量減少在查詢時(shí)使用or,否則就會導(dǎo)致所查詢的結(jié)果太多,從而降低查詢的效率。如果在進(jìn)行查詢時(shí)必須要采用聯(lián)合索引這樣的查詢方式,在具體的采用可以利用UNION all命令來執(zhí)行查詢,這樣可以在提升整個(gè)數(shù)據(jù)的查詢效率。
第二,為了對數(shù)據(jù)進(jìn)行查詢,在進(jìn)行數(shù)據(jù)存儲管理時(shí)可以將索引、數(shù)據(jù)以及日志等放在不同的設(shè)備上,這樣在具體的數(shù)據(jù)檢索時(shí)就可以提升數(shù)據(jù)讀取的效果,最終提高查詢效率。
第三,將charindex0與加%的like進(jìn)行對比可以了解到,其查詢的速率并沒有明顯的區(qū)別,甚至在使用時(shí)還能夠?qū)е伦詈蟮乃饕ケ旧淼淖饔谩T跀?shù)據(jù)庫查詢時(shí)對字段進(jìn)行提取,要堅(jiān)持以“需求量”為基礎(chǔ)進(jìn)行檢索,這樣可以有效避免檢索內(nèi)容過多,從而影響檢索效果。而且在字段提取時(shí)其內(nèi)容越少,數(shù)據(jù)庫運(yùn)行的效率就會越高。
第四,為了保證檢索的結(jié)果精確,在進(jìn)行檢索時(shí)要能夠?qū)z索內(nèi)容、訪問方式等進(jìn)行合理的控制和選擇,同時(shí)還需要注重設(shè)置合適的填充因子。比如說當(dāng)填充因子的默認(rèn)值是0時(shí),就要求所索引的內(nèi)容盡可能小。同時(shí)在進(jìn)行檢索時(shí),為了保證效率要盡量不使用光標(biāo),這是由于光標(biāo)在使用時(shí)能夠占用大量的資源,從而降低數(shù)據(jù)查詢的效率。
第五,需要對查詢過程中產(chǎn)生的消耗進(jìn)行限制。在進(jìn)行數(shù)據(jù)查詢時(shí),為了保證查詢的效果可以對其產(chǎn)生的消耗進(jìn)行控制,這樣一旦消耗超過設(shè)定值時(shí),系統(tǒng)就會取消本次數(shù)據(jù)查詢的任務(wù)。
第六,對數(shù)據(jù)進(jìn)行模糊查詢時(shí)需要對數(shù)據(jù)的相似度進(jìn)行限制,這樣就可以減少查詢的時(shí)間。
第七,如果要想把二進(jìn)制的數(shù)據(jù)插入到Image行列中時(shí),要盡量避免在數(shù)據(jù)儲存時(shí)進(jìn)行查詢,此時(shí)無法進(jìn)行該項(xiàng)操作。
SQL Server數(shù)據(jù)庫中有許多不同類型的對象,如表格、視圖等。SQL Server數(shù)據(jù)庫所對應(yīng)的對象并不一定是一個(gè)主體,也可能時(shí)數(shù)據(jù)庫中的某一個(gè)部分,因此在進(jìn)行數(shù)據(jù)庫設(shè)計(jì)時(shí),為了保證整個(gè)數(shù)據(jù)庫的安全性能,在進(jìn)行版本升級時(shí)要能夠進(jìn)行權(quán)限設(shè)置,并以角色的安全作為主要的參考對象,對數(shù)據(jù)庫在進(jìn)行訪問時(shí)的權(quán)限進(jìn)行設(shè)置。對不同的用戶設(shè)置不同的權(quán)限,這樣,相同角色的用戶具有相同權(quán)限。用戶還可以根據(jù)自己角色的不同設(shè)置多個(gè)不同的權(quán)限。在SQL Server數(shù)據(jù)庫中每一個(gè)角色所具備的功能都是不一致的。
第一,部分服務(wù)器在數(shù)據(jù)庫中扮演的角色較為固定,針對這部分的服務(wù)器在進(jìn)行安全設(shè)置時(shí)不需要進(jìn)行用戶訪問權(quán)限設(shè)置,這樣每一個(gè)用戶需要通過Windows管理員的操作就可以實(shí)現(xiàn)對數(shù)據(jù)庫的訪問。
第二,SQL Server數(shù)據(jù)庫的角色在嵌套深度方面沒有過多的限制,但是在進(jìn)行嵌套時(shí)不能夠進(jìn)行循環(huán)嵌套。
第三,SQL Server數(shù)據(jù)庫的每一個(gè)用戶可以同時(shí)擁有多個(gè)不同的角色,每一個(gè)角色代表著不同的訪問權(quán)限,正是由于這些角色的不同從而使得數(shù)據(jù)庫中的DBA能夠?qū)@些權(quán)限進(jìn)行合理規(guī)劃。
第四,SQL Server數(shù)據(jù)庫在使用時(shí)管理員能夠?qū)τ脩舻慕巧M(jìn)行自定義設(shè)置,這樣對權(quán)限的管理就更為靈活方便。數(shù)據(jù)庫中的DBA也能夠根據(jù)角色的不同進(jìn)行定義,并通過自定義的方式對特定的程序進(jìn)行權(quán)限設(shè)置。
系統(tǒng)數(shù)據(jù)本身具有不穩(wěn)定性,在使用時(shí)會出現(xiàn)一系列的問題,比如說由于操作失誤所產(chǎn)生的問題或者是由于數(shù)據(jù)服務(wù)器損壞導(dǎo)致整個(gè)的數(shù)據(jù)庫系統(tǒng)出現(xiàn)重大問題。假如數(shù)據(jù)庫在運(yùn)行時(shí)被非法入侵,就有可能導(dǎo)致數(shù)據(jù)庫中的數(shù)據(jù)丟失。針對這些問題,在進(jìn)行數(shù)據(jù)管理時(shí),數(shù)據(jù)的安全問題十分重要。通過多年的研究分析,可以了解到在SQL Server數(shù)據(jù)庫中要想保證其安全性能就需要嚴(yán)格的控制數(shù)據(jù)庫的訪問權(quán)限,這樣才能夠防止用戶在進(jìn)行使用時(shí)利用非法手段更改數(shù)據(jù)庫內(nèi)容,避免其對系統(tǒng)產(chǎn)生破壞作用。
首先,需要對SQL Server數(shù)據(jù)庫中的文件進(jìn)行解析。SQL Server數(shù)據(jù)庫在運(yùn)行的過程中由于斷電、病毒等一些情況的影響導(dǎo)致其可能產(chǎn)生數(shù)據(jù)的損壞。在發(fā)生這樣的狀況時(shí),系統(tǒng)中自帶的恢復(fù)工具很難對這些數(shù)據(jù)進(jìn)行修復(fù),但是此時(shí)雖然數(shù)據(jù)發(fā)生了破壞,其數(shù)據(jù)本身并沒有丟失,仍然是存在的。此時(shí)就需要對SQL Server數(shù)據(jù)庫中所存儲文件進(jìn)行解析和儲存,從而實(shí)現(xiàn)數(shù)據(jù)的恢復(fù)。
其次,對系統(tǒng)的表信息和用戶信息進(jìn)行修復(fù)。該信息一般都是SQL Server數(shù)據(jù)庫通過對其中所儲存的文件結(jié)構(gòu)進(jìn)行分析從而形成的數(shù)據(jù)信息。針對這部分的數(shù)據(jù)信息進(jìn)行恢復(fù)時(shí)需要對其中的信息結(jié)構(gòu)進(jìn)行有效保存。比如對于用戶表信息進(jìn)行分析時(shí),首先需要對其在進(jìn)行記錄時(shí)所產(chǎn)生的信息進(jìn)行物理結(jié)構(gòu)的分析,然后才能夠?qū)τ脩粜畔⑦M(jìn)行保存和恢復(fù)。
SQL Server數(shù)據(jù)庫在進(jìn)行數(shù)據(jù)恢復(fù)時(shí)可以分為三種恢復(fù)方式,即完全修復(fù)、批量登記修復(fù)和簡單修復(fù)。這三種修復(fù)的方式有所不同。其中完全修復(fù)在SQL Server數(shù)據(jù)庫中是最為靈活的中修復(fù)方式,其在具體應(yīng)用的過程中能夠?qū)?shù)據(jù)庫中的數(shù)據(jù)信息恢復(fù)到某一個(gè)特定的時(shí)刻。除此之外,完全修復(fù)還能夠利用備份數(shù)據(jù)庫實(shí)現(xiàn)對文件的級別以及文件的差異進(jìn)行恢復(fù)和備份。批量登記備份在功能上也能夠?qū)崿F(xiàn)對SQL Server數(shù)據(jù)庫內(nèi)的所有數(shù)據(jù)進(jìn)行完全修復(fù)的功能,但是不能夠?qū)?shù)據(jù)恢復(fù)到某一個(gè)特定時(shí)刻。簡單恢復(fù)就是一種基本的備份恢復(fù),該恢復(fù)方式本身就具有一定的局限性,其在具體的應(yīng)用過程中能夠恢復(fù)完全數(shù)據(jù)庫與差異備份數(shù)據(jù)庫。需要注意的是,如果在進(jìn)行數(shù)據(jù)恢復(fù)時(shí)要想將數(shù)據(jù)恢復(fù)到某一個(gè)特定時(shí)刻,最好是選用完全修復(fù)模式,因?yàn)樵谠撃J较聰?shù)據(jù)修復(fù)最佳。
在SQL Server數(shù)據(jù)庫進(jìn)行使用時(shí),需要隨時(shí)對數(shù)據(jù)庫內(nèi)的信息進(jìn)行備份,這樣可以有效避免由于系統(tǒng)發(fā)生故障所產(chǎn)生的數(shù)據(jù)丟失現(xiàn)象。而且為了有效對數(shù)據(jù)進(jìn)行備份,需要專門設(shè)置備份的服務(wù)器,而且要求該服務(wù)器在SQL Server數(shù)據(jù)庫運(yùn)行的過程中能夠?qū)ο到y(tǒng)中的數(shù)據(jù)進(jìn)行備份。為了降低備份服務(wù)器的運(yùn)行成本,在進(jìn)行備份服務(wù)器的選擇上可以利用局域網(wǎng)的方式將SQL Server數(shù)據(jù)庫中的數(shù)據(jù)信息備份到另一臺計(jì)算機(jī)上,并且在該計(jì)算機(jī)上安裝SQL Server和Microsoft Windows NT,這樣備份計(jì)算機(jī)上就有與主計(jì)算機(jī)同名的數(shù)據(jù)庫內(nèi)容。再加上SQL Server數(shù)據(jù)庫本身就具備易機(jī)傳送功能,在該功能的支持下能夠?qū)QL Server服務(wù)器中的數(shù)據(jù)傳輸?shù)絺浞萦?jì)算機(jī)服務(wù)器中。一旦數(shù)據(jù)發(fā)生丟失進(jìn)行恢復(fù)時(shí),就需要利用數(shù)據(jù)庫中的full(完全)、simple(簡單)、bulk logged(批量登記)三種不同的模型實(shí)現(xiàn)恢復(fù)功能。
總之,在進(jìn)行數(shù)據(jù)庫建立的過程中利用SQL Server進(jìn)行系統(tǒng)建設(shè)具有功能多、界面好、易操作等特點(diǎn),能夠?qū)?shù)據(jù)進(jìn)行計(jì)算、存儲、查詢等多種不同的功能,而且SQL Server數(shù)據(jù)庫能夠?qū)⒂脩舨樵兊慕Y(jié)果或者是內(nèi)容以報(bào)表等形式進(jìn)行輸出,從而為用戶提供便利。本文在進(jìn)行研究的過程中就從查詢技巧、安全技巧、修復(fù)技巧和備份技巧四方面進(jìn)行著手分析,研究其在進(jìn)行應(yīng)用時(shí)的技巧,從而更好地發(fā)揮數(shù)據(jù)庫的作用。
[1]張予民,萬洪彬.淺談SQL Server數(shù)據(jù)庫應(yīng)用技巧[J].科技廣場, 2009(5).
[2]馮艷.SQL Server數(shù)據(jù)庫運(yùn)用及其性能優(yōu)化分析[J].軟件導(dǎo)刊, 2012(11).
[3]田建軍.淺談SQL Server數(shù)據(jù)庫應(yīng)用技巧[J].計(jì)算機(jī)與網(wǎng)絡(luò),2010(39).
[4]楊???SQL Server數(shù)據(jù)庫在實(shí)際運(yùn)用中的策略分析探究[J].計(jì)算機(jī)光盤軟件與應(yīng)用, 2012(5).
(作者單位:邢臺技師學(xué)院)