1、調整數據結構的設計。這一部分在開(kāi)發(fā)信息系統之前完成,程序員需要考慮是否使用ORACLE數據庫的分區功能,對于經(jīng)常訪(fǎng)問(wèn)的數據庫表是否需要建立索引等。
2、調整應用程序結構設計。這一部分也是在開(kāi)發(fā)信息系統之前完成,程序員在這一步需要考慮應用程序使用什么樣的體系結構,是使用傳統的Client/Server兩層體系結構,還是使用Browser/Web/Database的三層體系結構。不同的應用程序體系結構要求的數據庫資源是不同的。
3、調整數據庫SQL語(yǔ)句。應用程序的執行最終將歸結為數據庫中的SQL語(yǔ)句執行,因此SQL語(yǔ)句的執行效率最終決定了ORACLE數據庫的性能。ORACLE公司推薦使用ORACLE語(yǔ)句優(yōu)化器(Oracle Optimizer)和行鎖管理器(row-level manager)來(lái)調整優(yōu)化SQL語(yǔ)句。
4、調整服務(wù)器內存分配。內存分配是在信息系統運行過(guò)程中優(yōu)化配置的,數據庫管理員可以根據數據庫運行狀況調整數據庫系統全局區(SGA區)的數據緩沖區、日志緩沖區和共享池的大小;還可以調整程序全局區(PGA區)的大小。需要注意的是,SGA區不是越大越好,SGA區過(guò)大會(huì )占用操作系統使用的內存而引起虛擬內存的頁(yè)面交換,這樣反而會(huì )降低系統。
5、調整硬盤(pán)I/O,這一步是在信息系統開(kāi)發(fā)之前完成的。數據庫管理員可以將組成同一個(gè)表空間的數據文件放在不同的硬盤(pán)上,做到硬盤(pán)之間I/O負載均衡。
6、調整操作系統參數,例如:運行在UNIX操作系統上的ORACLE數據庫,可以調整UNIX數據緩沖池的大小,每個(gè)進(jìn)程所能使用的內存大小等參數。
數據庫(Database)是按照數據結構來(lái)組織、存儲和管理數據的倉庫,它產(chǎn)生于距今六十多年前,隨著(zhù)信息技術(shù)和市場(chǎng)的發(fā)展,特別是二十世紀九十年代以后,數據管理不再僅僅是存儲和管理數據,而轉變成用戶(hù)所需要的各種數據管理的方式。數據庫有很多種類(lèi)型,從最簡(jiǎn)單的存儲有各種數據的表格到能夠進(jìn)行海量數據存儲的大型數據庫系統都在各個(gè)方面得到了廣泛的應用。
在信息化社會(huì ),充分有效地管理和利用各類(lèi)信息資源,是進(jìn)行科學(xué)研究和決策管理的前提條件。數據庫技術(shù)是管理信息系統、辦公自動(dòng)化系統、決策支持系統等各類(lèi)信息系統的核心部分,是進(jìn)行科學(xué)研究和決策管理的重要技術(shù)手段。
在經(jīng)濟管理的日常工作中,常常需要把某些相關(guān)的數據放進(jìn)這樣的“倉庫”,并根據管理的需要進(jìn)行相應的處理。
例如,企業(yè)或事業(yè)單位的人事部門(mén)常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡(jiǎn)歷等)存放在表中,這張表就可以看成是一個(gè)數據庫。有了這個(gè)"數據倉庫"我們就可以根據需要隨時(shí)查詢(xún)某職工的基本情況,也可以查詢(xún)工資在某個(gè)范圍內的職工人數等等。這些工作如果都能在計算機上自動(dòng)進(jìn)行,那我們的人事管理就可以達到極高的水平。此外,在財務(wù)管理、倉庫管理、生產(chǎn)管理中也需要建立眾多的這種"數據庫",使其可以利用計算機實(shí)現財務(wù)、倉庫、生產(chǎn)的自動(dòng)化管理。
擴展資料
數據庫,簡(jiǎn)單來(lái)說(shuō)是本身可視為電子化的文件柜--存儲電子文件的處所,用戶(hù)可以對文件中的數據進(jìn)行新增、截取、更新、刪除等操作。
數據庫指的是以一定方式儲存在一起、能為多個(gè)用戶(hù)共享、具有盡可能小的冗余度的特點(diǎn)、是與應用程序彼此獨立的數據集合。
在經(jīng)濟管理的日常工作中,常常需要把某些相關(guān)的數據放進(jìn)這樣的"倉庫",并根據管理的需要進(jìn)行相應的處理。
例如,企業(yè)或事業(yè)單位的人事部門(mén)常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡(jiǎn)歷等)存放在表中,這張表就可以看成是一個(gè)數據庫。有了這個(gè)"數據倉庫"我們就可以根據需要隨時(shí)查詢(xún)某職工的基本情況,也可以查詢(xún)工資在某個(gè)范圍內的職工人數等等。這些工作如果都能在計算機上自動(dòng)進(jìn)行,那我們的人事管理就可以達到極高的水平。此外,在財務(wù)管理、倉庫管理、生產(chǎn)管理中也需要建立眾多的這種"數據庫",使其可以利用計算機實(shí)現財務(wù)、倉庫、生產(chǎn)的自動(dòng)化管理。
參考資料:數據庫的百度百科
我們要做到不但會(huì )寫(xiě)SQL,還要做到寫(xiě)出性能優(yōu)良的SQL,以下為筆者學(xué)習、摘錄、并匯總部分資料與大家分享! (1) 選擇最有效率的表名順序(只在基于規則的優(yōu)化器中有效): ORACLE 的解析器按照從右到左的順序處理FROM子句中的表名,FROM子句中寫(xiě)在最后的表(基礎表 driving table)將被最先處理,在FROM子句中包含多個(gè)表的情況下,你必須選擇記錄條數最少的表作為基礎表。
如果有3個(gè)以上的表連接查詢(xún), 那就需要選擇交叉表(intersection table)作為基礎表, 交叉表是指那個(gè)被其他表所引用的表. (2) WHERE子句中的連接順序.: ORACLE采用自下而上的順序解析WHERE子句,根據這個(gè)原理,表之間的連接必須寫(xiě)在其他WHERE條件之前, 那些可以過(guò)濾掉最大數量記錄的條件必須寫(xiě)在WHERE子句的末尾. (3) SELECT子句中避免使用 ‘ * ‘: ORACLE在解析的過(guò)程中, 會(huì )將'*' 依次轉換成所有的列名, 這個(gè)工作是通過(guò)查詢(xún)數據字典完成的, 這意味著(zhù)將耗費更多的時(shí)間 (4) 減少訪(fǎng)問(wèn)數據庫的次數: ORACLE在內部執行了許多工作: 解析SQL語(yǔ)句, 估算索引的利用率, 綁定變量 , 讀數據塊等; (5) 在SQL*Plus , SQL*Forms和Pro*C中重新設置ARRAYSIZE參數, 可以增加每次數據庫訪(fǎng)問(wèn)的檢索數據量 ,建議值為200 (6) 使用DECODE函數來(lái)減少處理時(shí)間: 使用DECODE函數可以避免重復掃描相同記錄或重復連接相同的表. (7) 整合簡(jiǎn)單,無(wú)關(guān)聯(lián)的數據庫訪(fǎng)問(wèn): 如果你有幾個(gè)簡(jiǎn)單的數據庫查詢(xún)語(yǔ)句,你可以把它們整合到一個(gè)查詢(xún)中(即使它們之間沒(méi)有關(guān)系) (8) 刪除重復記錄: 最高效的刪除重復記錄方法 ( 因為使用了ROWID)例子: DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP X WHERE X.EMP_NO = E.EMP_NO); (9) 用TRUNCATE替代DELETE: 當刪除表中的記錄時(shí),在通常情況下, 回滾段(rollback segments ) 用來(lái)存放可以被恢復的信息. 如果你沒(méi)有COMMIT事務(wù),ORACLE會(huì )將數據恢復到刪除之前的狀態(tài)(準確地說(shuō)是恢復到執行刪除命令之前的狀況) 而當運用TRUNCATE時(shí), 回滾段不再存放任何可被恢復的信息.當命令運行后,數據不能被恢復.因此很少的資源被調用,執行時(shí)間也會(huì )很短. (譯者按: TRUNCATE只在刪除全表適用,TRUNCATE是DDL不是DML) (10) 盡量多使用COMMIT: 只要有可能,在程序中盡量多使用COMMIT, 這樣程序的性能得到提高,需求也會(huì )因為COMMIT所釋放的資源而減少: COMMIT所釋放的資源: a. 回滾段上用于恢復數據的信息. b. 被程序語(yǔ)句獲得的鎖 c. redo log buffer 中的空間 d. ORACLE為管理上述3種資源中的內部花費 (11) 用Where子句替換HAVING子句: 避免使用HAVING子句, HAVING 只會(huì )在檢索出所有記錄之后才對結果集進(jìn)行過(guò)濾. 這個(gè)處理需要排序,總計等操作. 如果能通過(guò)WHERE子句限制記錄的數目,那就能減少這方面的開(kāi)銷(xiāo). (非oracle中)on、where、having這三個(gè)都可以加條件的子句中,on是最先執行,where次之,having最后,因為on是先把不符合條件的記錄過(guò)濾后才進(jìn)行統計,它就可以減少中間運算要處理的數據,按理說(shuō)應該速度是最快的,where也應該比having快點(diǎn)的,因為它過(guò)濾數據后才進(jìn)行sum,在兩個(gè)表聯(lián)接時(shí)才用on的,所以在一個(gè)表的時(shí)候,就剩下where跟having比較了。在這單表查詢(xún)統計的情況下,如果要過(guò)濾的條件沒(méi)有涉及到要計算字段,那它們的結果是一樣的,只是where可以使用rushmore技術(shù),而having就不能,在速度上后者要慢如果要涉及到計算的字段,就表示在沒(méi)計算之前,這個(gè)字段的值是不確定的,根據上篇寫(xiě)的工作流程,where的作用時(shí)間是在計算之前就完成的,而having就是在計算后才起作用的,所以在這種情況下,兩者的結果會(huì )不同。
在多表聯(lián)接查詢(xún)時(shí),on比where更早起作用。系統首先根據各個(gè)表之間的聯(lián)接條件,把多個(gè)表合成一個(gè)臨時(shí)表后,再由where進(jìn)行過(guò)濾,然后再計算,計算完后再由having進(jìn)行過(guò)濾。
由此可見(jiàn),要想過(guò)濾條件起到正確的作用,首先要明白這個(gè)條件應該在什么時(shí)候起作用,然后再決定放在那里 (12) 減少對表的查詢(xún): 在含有子查詢(xún)的SQL語(yǔ)句中,要特別注意減少對表的查詢(xún).例子: SELECT TAB_NAME FROM TABLES WHERE (TAB_NAME,DB_VER) = ( SELECT TAB_NAME,DB_VER FROM TAB_COLUMNS WHERE VERSION = 604) (13) 通過(guò)內部函數提高SQL效率.: 復雜的SQL往往犧牲了執行效率. 能夠掌握上面的運用函數解決問(wèn)題的方法在實(shí)際工作中是非常有意義的 (14) 使用表的別名(Alias): 當在SQL語(yǔ)句中連接多個(gè)表時(shí), 請使用表的別名并把別名前綴于每個(gè)Column上.這樣一來(lái),就可以減少解析的時(shí)間并減少那些由Column歧義引起的語(yǔ)法錯誤. (15) 用EXISTS替代IN、用NOT EXISTS替代NOT IN: 在許多基于基礎表的查詢(xún)中,為了滿(mǎn)足一個(gè)條件,往往需要對另一個(gè)表進(jìn)行聯(lián)接.在這種情況下, 使用EXISTS(或NOT EXISTS)通常將提高查詢(xún)的效率. 在子查詢(xún)中,NOT IN子句將執行一個(gè)內部的排序和合并. 無(wú)論在哪種情況下,NOT IN都是最低效的 。
在數據庫應用系統中編寫(xiě)可執行的SQL語(yǔ)句可以有多種方式實(shí)現,但哪一條是最佳方案卻難以確定。
為了解決這一問(wèn)題,有必要對SQL實(shí)施優(yōu)化。簡(jiǎn)單地說(shuō),SQL語(yǔ)句的優(yōu)化就是將性能低下的SQL語(yǔ)句轉換成達到同樣目的的性能更好的SQL語(yǔ)句。
優(yōu)化SQL語(yǔ)句的原因 數據庫系統的生命周期可以分成: 設計、開(kāi)發(fā)和成品三個(gè)階段。在設計階段進(jìn)行優(yōu)化的成本最低,收益最大。
在成品階段進(jìn)行優(yōu)化的成本最高,收益最小。如果將一個(gè)數據庫系統比喻成一座樓房,在樓房建好后進(jìn)行矯正往往成本很高而收效很小(甚至可能根本無(wú)法矯正),而在樓房設計、生產(chǎn)階段控制好每塊磚瓦的質(zhì)量就能達到花費小而見(jiàn)效高的目的。
為了獲得最大效益,人們常需要對數據庫進(jìn)行優(yōu)化。數據庫的優(yōu)化通常可以通過(guò)對網(wǎng)絡(luò )、硬件、操作系統、數據庫參數和應用程序的優(yōu)化來(lái)進(jìn)行。
根據統計,對網(wǎng)絡(luò )、硬件、操作系統、數據庫參數進(jìn)行優(yōu)化所獲得的性能提升全部加起來(lái)只占數據庫應用系統性能提升的40%左右,其余60%的系統性能提升全部來(lái)自對應用程序的優(yōu)化。許多優(yōu)化專(zhuān)家甚至認為對應用程序的優(yōu)化可以得到80%的系統性能提升。
因此可以肯定,通過(guò)優(yōu)化應用程序來(lái)對數據庫系統進(jìn)行優(yōu)化能獲得更大的收益。 對應用程序的優(yōu)化通常可分為兩個(gè)方面: 源代碼的優(yōu)化和SQL語(yǔ)句的優(yōu)化。
由于涉及到對程序邏輯的改變,源代碼的優(yōu)化在時(shí)間成本和風(fēng)險上代價(jià)很高(尤其是對正在使用中的系統進(jìn)行優(yōu)化) 。另一方面,源代碼的優(yōu)化對數據庫系統性能的提升收效有限,因為應用程序對數據庫的操作最終要表現為SQL語(yǔ)句對數據庫的操作。
對SQL語(yǔ)句進(jìn)行優(yōu)化有以下一些直接原因: 1. SQL語(yǔ)句是對數據庫(數據) 進(jìn)行操作的惟一途徑,應用程序的執行最終要歸結為SQL語(yǔ)句的執行,SQL語(yǔ)句的效率對數據庫系統的性能起到了決定性的作用。 2. SQL語(yǔ)句消耗了70%~90%的數據庫資源。
3. SQL語(yǔ)句獨立于程序設計邏輯,對SQL語(yǔ)句進(jìn)行優(yōu)化不會(huì )影響程序邏輯,相對于對程序源代碼的優(yōu)化,對SQL語(yǔ)句的優(yōu)化在時(shí)間成本和風(fēng)險上的代價(jià)都很低。 4. SQL語(yǔ)句可以有不同的寫(xiě)法,不同的寫(xiě)法在性能上的差異可能很大。
5. SQL語(yǔ)句易學(xué),難精通。SQL語(yǔ)句的性能往往同實(shí)際運行系統的數據庫結構、記錄數量等有關(guān),不存在普遍適用的規律來(lái)提升性能。
傳統的優(yōu)化方法 SQL程序人員在傳統上采用手工重寫(xiě)來(lái)對SQL語(yǔ)句進(jìn)行優(yōu)化。這主要依靠DBA或資深程序員對SQL語(yǔ)句執行計劃的分析,依靠經(jīng)驗,嘗試重寫(xiě)SQL語(yǔ)句,然后對結果和性能進(jìn)行比較以試圖找到性能較佳的SQL語(yǔ)句。
這種做法存在著(zhù)以下不足: 1. 無(wú)法找出SQL語(yǔ)句的所有可能寫(xiě)法。很可能花費了大量的時(shí)間也無(wú)法找到性能較佳的SQL語(yǔ)句。
即便找到了某個(gè)性能較佳的SQL語(yǔ)句也無(wú)法知道是否存在性能更好的寫(xiě)法。 2. 非常依賴(lài)于人的經(jīng)驗,經(jīng)驗的多寡往往決定了優(yōu)化后SQL語(yǔ)句的性能。
3. 非常耗時(shí)間。重寫(xiě)-->校驗正確性-->比較性能,這一循環(huán)過(guò)程需要大量的時(shí)間。
根據傳統的SQL優(yōu)化工具的功能,人們一般將優(yōu)化工具分為以下三代產(chǎn)品: 第一代的SQL優(yōu)化工具是執行計劃分析工具。這類(lèi)工具對輸入的SQL語(yǔ)句從數據庫提取執行計劃,并解釋執行計劃中關(guān)鍵字的含義。
第二代的SQL優(yōu)化工具只能提供增加索引的建議,它通過(guò)對輸入的SQL語(yǔ)句的執行計劃的分析來(lái)產(chǎn)生是否要增加索引的建議。這類(lèi)工具存在著(zhù)致命的缺點(diǎn)——只分析了一條SQL語(yǔ)句就得出增加某個(gè)索引的結論,根本不理會(huì )(實(shí)際上也無(wú)法評估到)增加的索引對整體數據庫系統性能的影響。
第三代工具是利用人工智能實(shí)現自動(dòng)SQL優(yōu)化。 人工智能自動(dòng)SQL優(yōu)化 隨著(zhù)人工智能技術(shù)的發(fā)展和在數據庫優(yōu)化領(lǐng)域應用的深入,在20世紀90年代末優(yōu)化技術(shù)取得了突破性的進(jìn)展,出現了人工智能自動(dòng)SQL優(yōu)化。
人工智能自動(dòng)SQL優(yōu)化的本質(zhì)就是借助人工智能技術(shù),自動(dòng)對SQL語(yǔ)句進(jìn)行重寫(xiě),找到性能最好的等效SQL語(yǔ)句。LECCO SQL Expert就采用了這種人工智能技術(shù),其SQL Expert支持Oracle、Sybase、MS SQL Server和IBM DB2數據庫平臺。
其突出特點(diǎn)是自動(dòng)優(yōu)化SQL語(yǔ)句。除此以外,還可以以人工智能知識庫“反饋式搜索引擎”來(lái)重寫(xiě)SQL語(yǔ)句,并找出所有等效的SQL語(yǔ)句及可能的執行計劃,通過(guò)測試運行為應用程序和數據庫自動(dòng)找到性能最好的SQL語(yǔ)句,提供微秒級的計時(shí); 能夠優(yōu)化Web應用程序和有大量用戶(hù)的在線(xiàn)事務(wù)處理中運行時(shí)間很短的SQL語(yǔ)句; 能通過(guò)比較源SQL和待選SQL的不同之處,為開(kāi)發(fā)人員提供“邊做邊學(xué)式訓練”,迅速提高開(kāi)發(fā)人員的SQL編程技能等等。
該工具針對數據庫應用的開(kāi)發(fā)和維護階段提供了數個(gè)特別的模塊:SQL語(yǔ)法優(yōu)化器、PL/SQL集成化開(kāi)發(fā)調試環(huán)境(IDE)、掃描器、數據庫監視器等。其核心模塊之一“SQL 語(yǔ)法優(yōu)化器”的工作原理大致如下:輸入一條源SQL語(yǔ)句,“人工智能反饋式搜索引擎”對輸入的SQL語(yǔ)句結合檢測到的數據庫結構和索引進(jìn)行重寫(xiě),產(chǎn)生N條等效的SQL語(yǔ)句輸出,產(chǎn)生的N條等效SQL語(yǔ)句再送入“人工智能反饋式搜索引擎”進(jìn)行重寫(xiě),直至無(wú)法產(chǎn)生新的輸出或搜索限額滿(mǎn),接下來(lái)對輸出的SQL語(yǔ)句進(jìn)行過(guò)濾,選。
數據庫性能優(yōu)化有哪些措施
1、1、調整數據結構的設計。這一部分在開(kāi)發(fā)信息系統之前完成,程序員需要考慮是否使用ORACLE數據庫的分區功能,對于經(jīng)常訪(fǎng)問(wèn)的數據庫表是否需要建立索引等。
2、2、調整應用程序結構設計。這一部分也是在開(kāi)發(fā)信息系統之前完成,程序員在這一步需要考慮應用程序使用什么樣的體系結構,是使用傳統的Client/Server兩層體系結構,還是使用Browser/Web/Database的三層體系結構。不同的應用程序體系結構要求的數據庫資源是不同的。
1.引言 數據庫調優(yōu)可以使數據庫應用運行得更快,它需要綜合考慮各種復雜的因素。
將數據均 勻分布在磁盤(pán)上可以提高I/O 利用率,提高數據的讀寫(xiě)性能;適當程度的非規范化可以改善 系統查詢(xún)性能;建立索引和編寫(xiě)高效的SQL 語(yǔ)句能有效避免低性能操作;通過(guò)鎖的調優(yōu)解 決并發(fā)控制方面的性能問(wèn)題。 數據庫調優(yōu)技術(shù)可以在不同的數據庫系統中使用,它不必糾纏于復雜的公式和規則,然 而它需要對程序的應用、數據庫管理系統、查詢(xún)處理、并發(fā)控制、操作系統以及硬件有廣泛 而深刻的理解。
2.計算機硬件調優(yōu) 2.1 數據庫對象的放置策略 利用數據庫分區技術(shù),均勻地把數據分布在系統的磁盤(pán)中,平衡I/O 訪(fǎng)問(wèn),避免I/O 瓶頸: (1)訪(fǎng)問(wèn)分散到不同的磁盤(pán),即使用戶(hù)數據盡可能跨越多個(gè)設備,多個(gè)I/O 運轉,避免 I/O 競爭,克服訪(fǎng)問(wèn)瓶頸;分別放置隨機訪(fǎng)問(wèn)和連續訪(fǎng)問(wèn)數據。 (2)分離系統數據庫I/O 和應用數據庫I/O,把系統審計表和臨時(shí)庫表放在不忙的磁盤(pán) 上。
(3)把事務(wù)日志放在單獨的磁盤(pán)上,減少磁盤(pán)I/O 開(kāi)銷(xiāo),這還有利于在障礙后恢復,提 高了系統的安全性。 (4)把頻繁訪(fǎng)問(wèn)的“活性”表放在不同的磁盤(pán)上;把頻繁用的表、頻繁做Join的表分別 放在單獨的磁盤(pán)上,甚至把頻繁訪(fǎng)問(wèn)的表的字段放在不同的磁盤(pán)上,把訪(fǎng)問(wèn)分散到不同的磁 盤(pán)上,避免I/O 爭奪。
2.2 使用磁盤(pán)硬件優(yōu)化數據庫 RAID (獨立磁盤(pán)冗余陣列)是由多個(gè)磁盤(pán)驅動(dòng)器(一個(gè)陣列)組成的磁盤(pán)系統。通過(guò)將磁盤(pán)陣列當作一個(gè)磁盤(pán)來(lái)對待,基于硬件的RAID允許用戶(hù)管理多個(gè)磁盤(pán)。
使用基于硬件的 RAID與基于操作系統的RAID相比較,基于硬件的RAID能夠提供更佳的性能。如果使用基于操作系統的RAID,那么它將占據其他系統需求的CPU周期;通過(guò)使用基于硬件的RAID, 用戶(hù)在不關(guān)閉系統的情況下能夠替換發(fā)生故障的驅動(dòng)器。
SQL Server 一般使用RAID等級0、1 和5。 RAID 0 是傳統的磁盤(pán)鏡象,陣列中每一個(gè)磁盤(pán)都有一個(gè)或多個(gè)磁盤(pán)拷貝,它主要用來(lái) 提供最高級的可靠性,使RAID 0成倍增加了寫(xiě)操作卻可以并行處理多個(gè)讀操作,從而提高 了讀操作的性能。
RAID 1 是磁盤(pán)鏡像或磁盤(pán)雙工,能夠為事務(wù)日志保證冗余性。 RAID 5帶奇偶的磁盤(pán)條帶化,即將數據信息和校驗信息分散到陣列的所有磁盤(pán)中,它可以消除一個(gè)校驗盤(pán)的瓶頸和單點(diǎn)失效問(wèn)題,RAID 5 也會(huì )增加寫(xiě)操作,也可以并行處理一個(gè)讀操作,還 可以成倍地提高讀操作的性能。
相比之下,RAID 5 增加的寫(xiě)操作比RAID 0 增加的要少許多。在實(shí)際應用中,用戶(hù)的讀操作要求遠遠多于寫(xiě)操作請求,而磁盤(pán)執行寫(xiě)操作的速度很快,以至于用戶(hù)幾乎感覺(jué)不到增加的時(shí)間,所以增加的寫(xiě)操作負擔不會(huì )帶來(lái)什么問(wèn)題。
在性能較好的服務(wù)器中一般都會(huì )選擇使用RAID 5 的磁盤(pán)陣列卡來(lái)實(shí)現,對于性能相對差一些的服務(wù)器也可利用純軟件的方式來(lái)實(shí)現RAID 5。 3.關(guān)系系統與應用程序調優(yōu) 3.1 應用程序優(yōu)化 從數據庫設計者的角度來(lái)看,應用程序無(wú)非是實(shí)現對數據的增加、修改、刪除、查詢(xún)和體現數據的結構和關(guān)系。
設計者在性能方面的考慮因素,總的出發(fā)點(diǎn)是:把數據庫當作奢侈 的資源看待,在確保功能的同時(shí),盡可能少地動(dòng)用數據庫資源。包括如下原則: (1)不訪(fǎng)問(wèn)或少訪(fǎng)問(wèn)數據庫; (2)簡(jiǎn)化對數據庫的訪(fǎng)問(wèn); (3)使訪(fǎng)問(wèn)最優(yōu); (4)對前期及后續的開(kāi)發(fā)、部署、調整提出要求,以協(xié)助實(shí)現性能目標。
另外,不要直接執行完整的SQL 語(yǔ)法,盡量通過(guò)存儲過(guò)程來(lái)調用SQL Server。客戶(hù)與服務(wù)器連接時(shí),建立連接池,讓連接盡量得以重用,以避免時(shí)間與資源的損耗。
非到不得已, 不要使用游標結構,確實(shí)使用時(shí),注意各種游標的特性。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:2.768秒