IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁數(shù)據(jù)庫MSSQL → 合理設(shè)置SQL Server 2008服務(wù)器安裝向?qū)?/p>

合理設(shè)置SQL Server 2008服務(wù)器安裝向?qū)?/h1>

時間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)

  一、SQLServer與Analysis Services排序規(guī)則的差異。

  通常情況下數(shù)據(jù)庫管理員可以分別為數(shù)據(jù)庫引擎和Analysis Services分別設(shè)置排序規(guī)則。如在SQLServer2008服務(wù)器中,數(shù)據(jù)庫引擎支持兩組排序規(guī)則,分別為Windows排序規(guī)則與SQLServer服務(wù)器排序規(guī)則。默認(rèn)情況下,如果在英文環(huán)境下部署SQLServre數(shù)據(jù)庫服務(wù)器的話,則其采用的是SQLServer排序規(guī)則。而如果采用其他版本的數(shù)據(jù)庫系統(tǒng),如在中文環(huán)境下部署中文版本的數(shù)據(jù)庫系統(tǒng),則這個排序規(guī)則就采用的是Windows排序規(guī)則,即由數(shù)據(jù)庫服務(wù)器操作系統(tǒng)的區(qū)域設(shè)置來決定具體的排序規(guī)則。而對于Analysis Services服務(wù)來說,其支持一組排序規(guī)則,即Windows排序規(guī)則。雖然說,數(shù)據(jù)庫管理員在數(shù)據(jù)庫安裝過程中,可以為這兩個服務(wù)器配置不同的排序規(guī)則。如SQLServer采用SQLServer排序規(guī)則,而Analysis Services采用Windows排序規(guī)則。這在技術(shù)上是允許的。但是這會造成一些不利的后果。由于兩者的排序規(guī)則不同,那么最后顯示的結(jié)果很有可能因為排序規(guī)則的不同,而導(dǎo)致顯示內(nèi)容的不同。為此在規(guī)劃數(shù)據(jù)庫應(yīng)用的時候,如果需要同時安裝這個兩個應(yīng)用服務(wù),那么筆者的建議是在安裝SQLServer數(shù)據(jù)庫時,為這個兩個服務(wù)設(shè)置相同的排序規(guī)則。由于Analysis Services只支持Windows排序規(guī)則,為此兩者都需要同時采用Windows排序規(guī)則。以確保數(shù)據(jù)庫引擎與Analysis Services之間顯示結(jié)果的一致性。

  需要強(qiáng)調(diào)的是,這是一個柔性的規(guī)則。即即使同時部署這兩個應(yīng)用服務(wù),而他們采用不同的排序規(guī)則,在技術(shù)上來說是不會遇到問題的。主要是看用戶能否接受兩個服務(wù)顯示結(jié)構(gòu)的不一致。如果可以接受的話,那么就不需要遵守這個規(guī)則,可以從性能或者其他方面來綜合考慮所采用的排序規(guī)則。但是如果不可以接受的話,那么就需要嚴(yán)格遵守這一規(guī)則,即為兩個服務(wù)都配置Windows排序規(guī)則。

  二、決定排序規(guī)則的一些參考。

  在符合上面這個基本的原則后,數(shù)據(jù)庫管理員就需要結(jié)合用戶的需求與數(shù)據(jù)庫性能方面的要求,來綜合考慮,最后決定需要采用的排序規(guī)則。這具有一定的難度,不過下面的這些規(guī)則數(shù)據(jù)庫管理員可以拿來參考。

  參考規(guī)則一:能用二進(jìn)制排序規(guī)則最好使用二進(jìn)制排序規(guī)則。

  二進(jìn)制排序規(guī)則由于其處理簡單,為此如果采用二進(jìn)制排序規(guī)則的話,可以在很大程度上提升數(shù)據(jù)庫的性能。特別是如果數(shù)據(jù)庫中本身就是以二進(jìn)制的形式來存儲數(shù)據(jù),那么在利用二進(jìn)制規(guī)則來排序的時候,相對來說,要比其他的排序規(guī)則速度更加的快。而且其也不怎么會受到語言的影響。所以,在數(shù)據(jù)庫部署中,能夠使用二進(jìn)制排序規(guī)則,就盡量使用二進(jìn)制排序規(guī)則;蛘哒f,這是數(shù)據(jù)庫管理員首選的選擇。除非這個二進(jìn)制排序規(guī)則與用戶的需求相矛盾,或者跟其他需求有難以調(diào)和的沖突時,才采用其他的排序規(guī)則。特別是對于數(shù)據(jù)庫性能有比較高的要求時,這個二進(jìn)制是一個首要的選擇。

  但是并不是說在任何情況下采用二進(jìn)制都會起到不錯的效果。如在數(shù)據(jù)庫中,既有二進(jìn)制存儲的數(shù)據(jù),又有其他格式存儲的數(shù)據(jù)。如字符型的數(shù)據(jù),在SQLServer數(shù)據(jù)庫中分為nchar(二進(jìn)制格式的數(shù)據(jù))與char(ANSI格式的字符數(shù)據(jù))兩種。如果采用二進(jìn)制排序規(guī)則,對這兩種不同類型的數(shù)據(jù)采用的是不同的處理規(guī)則。為此即使兩張表中的記錄完全相同,但是其采用的字符格式不同,其最后的結(jié)果也有可能會不同。所以在遇到這種情況時,數(shù)據(jù)庫管理員要么想方設(shè)法統(tǒng)一字符集,以達(dá)到統(tǒng)一排序結(jié)果的目的。要么數(shù)據(jù)庫管理員就需要向用戶確認(rèn),是否允許這個不同排序結(jié)果的存在。如果允許的話,那么采用二進(jìn)制排序規(guī)則沒有問題。但是如果不允許的話,那么之能夠放棄采用二進(jìn)制排序規(guī)則,而需要采用SQLServer等其他的排序規(guī)則。

  參考規(guī)則二:適合采用Windows排序規(guī)則的情況。

  一般滿足以上三個條件的任何一個條件的情況下,適合采用Windows排序規(guī)則。

  一是文章一開頭提到的那個基本原則。即在數(shù)據(jù)庫部署中同時存在Analysis Services與數(shù)據(jù)庫引擎(數(shù)據(jù)庫引擎是必須的,而Analysis Services是可選的),同時又不允許他們排序結(jié)果不一致的情況存在。此時最好能夠采用Windows排序規(guī)則。原因很簡單,因為Analysis Services只支持Windows排序規(guī)則,為了確保排序結(jié)果的一致性,也需要將數(shù)據(jù)庫引擎的排序結(jié)果設(shè)置為Windows排序規(guī)則。

  二是在數(shù)據(jù)庫中同時存在nchar/nvarchar(二進(jìn)制格式的數(shù)據(jù))與char/varchar(ANSI格式的數(shù)據(jù))的情況下,而且在應(yīng)用程序中可能需要混合使用他們。在這種情況下最好采用Windwos排序規(guī)則,以便在各個數(shù)據(jù)類型之間進(jìn)行一致的比較。如果采用二進(jìn)制排序規(guī)則或者SQLServer排序規(guī)則,由于他們對這些不同的數(shù)據(jù)類型比較時會采用不同的機(jī)制,為此往往會有不同的排序結(jié)果。在遇到這種混合使用的情況,最好采用的是Windows排序規(guī)則,以統(tǒng)一最后的排序結(jié)果。

  三是在應(yīng)用程序中只使用char/varchar數(shù)據(jù)類型,并且在應(yīng)用程序的SQL語句中,很少使用Like操作符號時,可以考慮采用Windows排序規(guī)則。此時可以在最大程度上消除排序結(jié)果的不同。

  在考慮是否需要采用Windows排序規(guī)則的時候,只需要對以上的三條規(guī)則對號入座即可。如果可以對號入座的,那么就采用這個Windows排序規(guī)則。如果不能夠?qū)μ柸胱,那就考慮采用其他的排序規(guī)則。

  參考規(guī)則三:適合采用SQLServer排序規(guī)則的情況。

  在什么情況下比較適用SQLServer排序規(guī)則呢?或許這個問題回答起來,婆說婆有理,公說公有理。很難有一個統(tǒng)一的答案。筆者認(rèn)為,采用SQLServer排序規(guī)則,即有利,也有弊。數(shù)據(jù)庫管理員需要在這個利與弊之間旬的一個均衡點(diǎn),以平衡各方面的需求。

  之所以考慮采用SQLServer排序規(guī)則,筆者認(rèn)為最大的好處就是可以提高LIKE等操作符的執(zhí)行性能。也就是說,如果在查詢語句中使用了Like等類似的關(guān)鍵字,而且同時使用了Order BY排序子句時,如果采用SQLServer排序規(guī)則的話,那么性能會比其他排序規(guī)則要高。而且滿足條件的記錄越多,這個排序效果會越好。所以,在數(shù)據(jù)庫設(shè)計中需要用到比較多的Like操作符,而且數(shù)據(jù)庫管理員又需要提升數(shù)據(jù)庫性能的時候,那么就需要考慮是否需要采用這個SQLServer排序規(guī)則。注意如果在Where語句中使用了這個Like操作符,而且這個操作符所涉及到的字段設(shè)置了索引,其查詢效果并不會因為有了這個索引而提高多少。也就是說,Like等類似的操作符與索引之間的配合,并不能夠起到1+1大于2的效果,有時候甚至?xí)鸬椒疵嫘Ч。此時,如果更改這個排序規(guī)則,反而可以起到索引不能夠起到的效果。

  不過采用SQLServer排序規(guī)則也有很多的缺陷。最大的缺陷就是數(shù)據(jù)庫的排序規(guī)則與操作系統(tǒng)或者其他應(yīng)用程序的排序結(jié)果不一致。如現(xiàn)在數(shù)據(jù)庫中采用的是SQLServer排序規(guī)則,對某張表進(jìn)行了排序。然后將這張表導(dǎo)入導(dǎo)了excel表格中,并對其按相同的規(guī)則進(jìn)行重新排序。此時兩張表記錄的顯示順序可能是不同的。這主要要是因為區(qū)域設(shè)置的不同而造成的。如果采用SQLServer排序規(guī)則的話,這種情況無法避免。除非企業(yè)中所有的電腦、數(shù)據(jù)庫系統(tǒng)都采用英文環(huán)境,并且配置相同的區(qū)域設(shè)置。為此,只有用戶可以允許數(shù)據(jù)庫系統(tǒng)與操作系統(tǒng)或者其他應(yīng)用程序排序結(jié)果的不一致性的情況下,可以使用這個SQLServer排序規(guī)則;蛘哒f,數(shù)據(jù)庫管理員不關(guān)系Windows排序規(guī)則中的語言比較語義的情況下,同時又存在不較多的Like操作符時,可以考慮采用SQLServer排序規(guī)則。

  在以上的分析中可以看出,在考慮采用什么樣的排序規(guī)則時,主要考慮的是兩個方面的因素,一是排序的結(jié)果,二是服務(wù)器的性能。也就是說,用戶是選擇在數(shù)據(jù)庫服務(wù)器與其它應(yīng)用程序之間排序結(jié)果的一致性,還是選擇提升服務(wù)器的性能。數(shù)據(jù)據(jù)管理員確認(rèn)完這個問題之后,那么就可以做出符合用戶需求的判斷了。

關(guān)鍵詞標(biāo)簽:SQL Server 2008,服務(wù)

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 SqlServer2005對現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟SqlServer2005對現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟sql server系統(tǒng)表損壞的解決方法sql server系統(tǒng)表損壞的解決方法MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫用戶MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫用戶Access、SQL Server、Oracle常見應(yīng)用的區(qū)別Access、SQL Server、Oracle常見應(yīng)用的區(qū)別

相關(guān)下載

人氣排行 如何遠(yuǎn)程備份(還原)SQL2000數(shù)據(jù)庫SQL2000數(shù)據(jù)庫遠(yuǎn)程導(dǎo)入(導(dǎo)出)數(shù)據(jù)配置和注冊O(shè)DBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程SQL2000和SQL2005數(shù)據(jù)庫服務(wù)端口查看或修改SQL Server 2005降級到2000的正確操作步驟修改Sql Server唯一約束教程淺談JSP JDBC來連接SQL Server 2005的方法SQL Server創(chuàng)建表語句介紹