◆徐映帆
(四川農業大學 四川 611830)
SQL數據庫的設計的相關內容
◆徐映帆
(四川農業大學 四川 611830)
數據庫系統是整個管理信息系統的基礎和核心,其作用是將大量數據按照一定的規則組織在一起,方便準確,及時提供給用戶。設計數據庫看起來很簡單,但實現數據庫性能優化在數據庫設計中非常困難,應用程序結構,開發工具,界面選擇和查詢設計都可以優化。一般來說,改進數據庫性能有很多方法,其中改進的數據庫設計是一種有效的方法。影響SQL數據庫優化性能的因素很多,包括主觀人為因素和客觀因素,其中數據庫設計是其中的一個因素。
數據庫設計;SQL數據庫;性能優化
隨著互聯網的使用越來越多,對數據庫的應用訪問越來越頻繁。如何提高數據庫操作的效率,減少響應時間變得越來越重要。為了實現這一目標,最簡單的解決方案是增加數據冗余并減少查詢過程中多個表的使用。但是數據冗余的增加會導致數據維護問題,如在一個表中更新或插入一條記錄,則需要在相應的字段中更新相關表或插入新記錄。如果這些操作在業務流程中,無疑會增加服務器的負擔。使用SQL觸發器可以解決這個問題,觸發器可以在業務流程操作中更新或插入,在相關表中進行自動處理,這些操作在數據庫中自動運行,減少網絡訪問,執行效率會要高得多。
要優化SQL Server數據庫的性能,在數據庫設計中,您需要熟悉基本結構,同時了解數據庫的存儲方式。首先,數據庫通常包含一個主數據文件,另外還包含一個或多個事務日志文件,還有一些還包含輔助數據文件。數據庫將以主要數據文件為起點,另一部分數據庫文件管理,主數據文件包含數據庫啟動信息,因此,對于所有數據,主數據文件是不可或缺的。對于事務日志文件,它包含恢復數據庫的所有日志信息。所以對于數據庫,日志文件也是不可或缺的,每個數據庫至少包含一個日志文件。輔助數據文件是指除主數據文件以外的數據文件。在數據庫中,如果主數據文件包含所有數據,則數據庫不能設置輔助數據文件。對于一些大型數據庫,為了提高數據處理的效率,還將設置一些輔助數據文件。
當創建數據庫時,系統數據庫內的模型數據庫復制,在相應的數據庫中將被復制; SQL Server數據庫,頁面存在的基本數據單位,定義為大小為8KB的連續磁盤空間,數據庫不能與Page SQL Server2000數據庫交叉,例如一行最多包含8060個字節;數據庫擴展是表或索引分配一定空間的基本單位,如果表相對較小,在擴展中可以與其他數據庫共享,擴展8個相鄰頁面;在事務日志文件中,將保存一些重要信息以方便數據恢復,只有在系統故障數據恢復的情況下。在設計數據庫時,首先要了解數據庫的結構,熟悉數據庫結構,有利于數據庫設計的標準化。數據庫文件和事務日志映射到磁盤,數據庫管理,用戶在使用數據庫進程時,系統的性能得到了有效的提高,同時系統的容錯也實現了。
在數據庫結構設計過程中,有的經常需要同時進行多表聯合查詢字段的設計存在于多個表中,使業務流程在單個表中查找單個查詢所需的信息,所以達到提高效率,縮短等候時間的目的。
數據庫完整性設計將直接影響DBMS,真正體現現實世界。使用完整性控制機制可防止未經授權的用戶向數據庫添加錯誤的數據,并實施業務規則以降低應用程序復雜性,提高系統的易用性,并避免系統性能。這個階段要求,根據需求分析的結果,系統可以滿足約束的要求,仔細規劃各種類型的完整性,盡量排除沖突之間的約束的完整性。一般來說,數據庫完整性約束可以分為靜態約束和動態約束。靜態約束應包含在數據庫模式中。SQL Server主要支持PRIMARY約束,UNIQUE約束,CHECK約束,DEFAULT約束,FOREIGN約束和動態約束條件本身的約束通常由程序完成。其中,參考約束設計非常重要,它要求外鍵的值必須來源于空值或為被參照關系。
物理設計目標是選擇最合理的物理結構,縮短事務響應時間,提高存儲空間利用率,吞吐量。數據庫的物理結構主要是指數據庫的存儲結構和訪問方式。有三種類型的訪問方法,Index方法,Cluser方法,HASH方法,如果Index思維和Cluser思想在一起,可以更快速地訪問數據。首先Cluser索引維護支付更大的系統開銷。所以建立Cluser的索引要好一點。通常,您選擇將通常用作查詢關鍵字的屬性進行索引,例如,使用索引。每個班級的每個學生的成績一度下降,查詢操作將比更新操作更多,同一類學生信息存儲在連續的物理塊中,可以減少操作,加快查詢速度。數據庫存儲結構,包括物理文件的實際存儲確定路徑;確定物理文件空間的初始大小,最大空間,增加備份策略的開發量,定期執行數據庫和事務日志備份,如果數據庫損壞,使用日志和備份修復數據。備份策略清除何時備份,備份哪里,誰來備份,備份類型和頻率,以及所需的硬件功能和速度。日志文件可以記錄所有的insert,delete,updata操作,當所有操作都記錄在日志文件中時,會導致日志文件增加,所以每個學期結束,數據庫清理,執行完全備份,可以采取空日志文件方法來減小物理文件的大小以維護系統性能。
觸發器是一種特殊的存儲過程,類似于其他編程語言中的事件函數。SQL Server允許您為 INSERT創建一個觸發器為UPDATE、 DELETE,當表中插入,更新和刪除記錄(視圖)或一系列T-SQL語句時。
SQL Server觸發器的觸發類型可以分為 DELETE觸發器、UPDATE觸發器和INSERT觸發器三大類。
當INSERT觸發器被觸發時,系統創建一個名為inserted的邏輯表,并將插入的數據行復制到插入。當DELETE觸發器觸發時,系統將創建一個名為“刪除”的邏輯表,刪除的數據行將被復制到刪除。當UPDATE觸發器被觸發時,系統將創建一個名為“delete.inserted”的邏輯表,將更新前的數據行復制到,刪除后,更新的數據行將被復制到插入。因此,UPDATE觸發器可以理解為第一個DELETE行數據,然后INSERT新建數據行。
在編寫觸發器的過程中,可以使用UPDATE(column)來確定是否在 INSERT或 UPDATE操作上指定列。您也可以使用COLUMNS_ UPDATEDO來確定是否插入或更新了所提到的列。這兩種方法只能在 INSERT或 UPDATE觸發器中使用,不能在DELETE觸發器中使用。
許多操作環境根據 CPU使用情況動態調整進程的優先級,如果SQL Server的優先級降低,其性能將會降低。如果要將SQL Server進程優先級更改為更高的值,則應確保不會太高,甚至影響操作系統性能,因為SQL Server首先要依賴于正在運行的操作系統的操作。
改善網絡的最佳方式是減少發送的網絡數據包數量。有時一些查詢不會優化對齊,從而返回比用戶需要的更多的數據。通過仔細設計您的應用程序,您可以允許客戶端僅將行數作為預覽應用,如有必要,返回所有結果。
網絡協議的選擇,必須通過的路由器,網關和網橋數量以及網絡緩沖區等配置參數可能會對 SQL Server客戶端/服務器的通信性能產生重大影響。確保網絡已針對SQL Server傳輸進行了優化。
總而言之,SQL觸發器可以在數據庫維護數據一致性中發揮重要作用,以提高數據庫查詢的效率。但在實際應用中也應該注意不能濫用觸發器,因為會導致數據庫和應用程序的維護困難。在實際應用中,您應該使用諸如關系,觸發器,存儲過程,應用程序和其他方式的關系的組合來執行數據庫操作。
[1] 林元彥.SQL Serve:數據庫性能分析與優化[J].電子技術與軟件工程,2013.
[2] 薩師煊,王珊.數據庫系統概論.高等教育出版社, 2001.
[3] 胡百敬.Microsoft SQL Server性能調校.電子工業出版社,2005.
[4] 肖桂東.SQL Server疑難解析.電工業業出版利社,2003.
[5] 章立民.SQL Server 2000中文版完全實戰入門篇.中國鐵道出版社,2001.