資源描述:
《sybase數(shù)據(jù)庫性能優(yōu)化》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、Sybase數(shù)據(jù)庫性能優(yōu)化在現(xiàn)有軟硬件條件下,充分發(fā)揮數(shù)據(jù)庫系統(tǒng)的潛能是DBA追求的最高境界,然而,數(shù)據(jù)庫性能調(diào)優(yōu)是一個非常復(fù)雜的問題,不僅需要精通數(shù)據(jù)庫的理論知識,更需要逐漸積累實踐經(jīng)驗。這里主要針對Sybase數(shù)據(jù)庫簡要介紹一下如何進行調(diào)優(yōu),及調(diào)優(yōu)時所要注意的事項。Sybase數(shù)據(jù)庫系統(tǒng)的性能的優(yōu)化,是一項長期且受諸多因素影響的工作,它可劃分為以下4個層次:2SQLServer級:包括對內(nèi)存的合理分配,鎖操作和臨時表的使用,與系統(tǒng)配置關(guān)聯(lián)的磁盤的I/O性能。2數(shù)據(jù)庫設(shè)計級:包括數(shù)據(jù)庫對象的設(shè)計,索引的創(chuàng)建,表中數(shù)據(jù)類型
2、的選擇,數(shù)據(jù)庫設(shè)備的分配及使用。2應(yīng)用程序級:包括T_SQL查詢語句的優(yōu)化,應(yīng)用級封鎖,事務(wù)和游標(biāo)的使用。2操作系統(tǒng)級:包括硬件、操作系統(tǒng)和網(wǎng)絡(luò)對總體性能的影響。在數(shù)據(jù)庫應(yīng)用系統(tǒng)的管理維護中,運行環(huán)境引起的性能劣化只有通過硬件的升級才能得到優(yōu)化,在系統(tǒng)硬件配置和網(wǎng)絡(luò)設(shè)計確定的情況下,影響系統(tǒng)性能的主要是其他三個層次方面的原因。在此就這三個方面進行簡要討論、總結(jié)。1SQLServer級的調(diào)優(yōu)1.1管理共享內(nèi)存數(shù)據(jù)庫性能優(yōu)化的首要方面是最優(yōu)管理內(nèi)存。數(shù)據(jù)庫占用的共享內(nèi)存分成數(shù)據(jù)緩沖(datacache)、存儲過程緩沖(Proc
3、edurecache)等幾塊。在isql下使用sp_configure'cache'可以看到存儲過程緩沖所占百分比(procedurecachepercent),整個數(shù)據(jù)緩沖大?。╰otaldatacachesize)等參數(shù)。CQ%SC({?1.1.1存儲過程緩沖(procedurecache)存儲過程緩沖保持以下對象的查詢計劃:x%>`}<$4z?Procedures:存儲過程2sBuvNg="?Triggers:觸發(fā)器I/}1BA?Views:視圖:XCH*J?Rules:規(guī)則0X.rq8vQ?D
4、efaults:缺省5Ga$!m_nW4?Cursors:游標(biāo)1Ma{;G?存儲過程不可重入,意即每個并發(fā)用戶調(diào)用都會在內(nèi)存中產(chǎn)生一個拷貝。eLa8.Procedure,triggers,andviews當(dāng)它們被裝載到存儲過程緩沖中時,被查詢優(yōu)化器優(yōu)化,建立查詢計劃。如果存儲過程在緩沖中,被調(diào)用時就不需要重新編譯。如果存儲過程緩沖太小,存儲過程就會經(jīng)常被其他調(diào)入內(nèi)存的存儲過程沖洗掉,當(dāng)再次被調(diào)用時,存儲過程又被調(diào)入內(nèi)存,再重新編譯,用戶請求因此不得不等待。最嚴重的情況,如果存儲過程緩沖不夠,存儲過程甚至都不能運行。所
5、以在內(nèi)存足夠的情況下,存儲過程緩沖參數(shù)比例盡可能大一些。XW{]lu:2x?1.1.2數(shù)據(jù)緩沖(DataCache)數(shù)據(jù)緩沖用來緩存數(shù)據(jù)頁和索引頁,是除去存儲過程緩沖,系統(tǒng)其他占用的緩沖外的剩余內(nèi)存空間。通過給服務(wù)器增加物理內(nèi)存擴大數(shù)據(jù)緩沖,是最有效的方法。當(dāng)然,如果不能加內(nèi)存,就只能通過減少存儲過程緩沖的比例等方法來擴大數(shù)據(jù)緩沖了。配置足夠大的數(shù)據(jù)緩沖可防止其它服務(wù)器活動爭用高速緩存空間,并加速使用這些表的查詢,因為所需頁始終都可在高速緩存中找到。同時,可以考慮將“熱”表如:用戶應(yīng)用程序?qū)ζ湫枨筝^大的表綁定到一個高速緩
6、存上,而表上的索引綁定到其它高速緩存,以提高并發(fā)性。具體做法如下:創(chuàng)建命名緩存sp_cacheconfigcache_name,”size[P
7、K
8、M
9、G]”例如創(chuàng)建一個10MB的命名緩存pubs_cache:sp_cacheconfigpubs_cache,”10M”把表綁定到指定的命名緩存:sp_bindcachecache_name,dbname[,[owner.]table_name[,indexname
10、”textonly”]]例如把titles表綁定到上面剛建的命名緩存中:sp_bindcachepubs_ca
11、che,pubs2..titles注意:每開辟一個緩沖占用16K的系統(tǒng)內(nèi)存,應(yīng)根據(jù)服務(wù)器的內(nèi)存大小來定義所要開的數(shù)據(jù)緩沖的個數(shù)。>mD6U~d?1.1.3tempdb數(shù)據(jù)庫的優(yōu)化缺省情況下,tempdb數(shù)據(jù)庫是放置在master設(shè)備上,容量為2M,而臨時數(shù)據(jù)庫是活動最為平凡的數(shù)據(jù)庫常常被用來排序、創(chuàng)建臨時表、重格式化等操作,所以tempdb的優(yōu)化應(yīng)該受到特別的關(guān)注,缺省情況下,用于tempdb的system、default和logsegment段在主設(shè)備上分配了2MB空間。將第二個設(shè)備分配給tempdb后,即可在de
12、fault和logsegment段中將主設(shè)備刪除。使用這種方式,可以確保tempdb中的工作表和其它臨時表不會和主設(shè)備上的其它使用相互爭用。優(yōu)化tempdb數(shù)據(jù)庫有以下步驟:第一步:調(diào)整臨時庫的位置tempdb數(shù)據(jù)庫缺省放在master設(shè)備上,將臨時數(shù)據(jù)庫發(fā)在分離的設(shè)備上是更可取的。1)??初始化一個用