您正在看的SQLserver教程是:SQL7數據庫的存儲引擎。在十年以前,數據庫應用的開發要花上幾個月甚至好幾年並不奇怪。在建立數據庫的時候,必須提前作好所有的准備—數據庫大小、方案、用戶數目等等。而在近幾年,這個觀念有了巨大的變化。現在,數據庫應用的開發只需要幾星期或者幾個月,在處理過程上有了很大的改進,並且在充分理解所有的問題之前,就可以先行投入開發。
應用程序的快速開發對數據庫存儲引擎提出了嚴格的要求。這就需要它能夠隨時可用,有一個快速的恢復系統和自動管理工具。管理員希望能夠快速地進行某些修改而不必關閉他們的應用。數據庫的發展速度比預想的要迅速得多,以前需要一整夜做出的備份現在只要幾個小時就可以完成。 微軟從客戶那裡收集到了許多的需求。存儲引擎小組致力於微軟 SQL Server 7.0的發布,這是一個可升級的、可靠的並且易於使用的產品,它會在今後的二十年裡為應用程序的 設計提供一個堅實的基礎。
存儲引擎的體系結構簡介
微軟正在設計SQL Server向上能夠處理大型的企業應用,同時向下能夠處理桌面應用 的能力。新的格式改善了可管理性和可伸縮性,允許服務器在低端系統和高端系統之間伸縮。 新的數據庫引擎設計有許多優點,包括:
改善了可伸縮性和與Windows NT服務器的兼容性。
對於大型I/O有更好的性能。
穩定的記錄位置允許更多的索引 。
查詢能夠被更多的索引判斷所支持。
簡化的數據結構提供更好的質量 。
更好的可擴展性。今後的版本能夠有完善的發展,並且能夠更迅速的利用新的特
性。
數據庫、文件和文件組
SQL Server 7.0能夠與Windows NT服務器更好地兼容。現在數據庫直接存儲在 Windows NT服務器的文件裡。舊的UNIX的數據庫設備和分段被一個簡單的系統所替換,它把每個數據庫映射到自己的文件集。 SQL Server 7.0使用一個操作系統文件集來創建數據庫,每個數據庫分別使用不同的 文件。在同一個文件中不再有多個數據庫。這種簡化有幾個重要的優點。現在文件是可以增大和縮減的,並且空間管理也有很大程度的簡化。 數據庫中的所有數據和對象,例如表、存儲進程、觸發器和視圖,都只存儲在這些操作系統文件裡(見表1)。
在創建一個數據庫的時候,所有包含數據庫的文件都要零化(用零填充),以清除磁盤上已經被刪文件所留下的數據。盡管這意味著文件的創建要花費更長的時間,但是能夠防止Windows NT在正常的數據庫操作期間,當數據被首次寫入文件時還要先清除該文件(由於它們已經被零化)。這樣就改善了日常操作的性能。 一個數據庫由一個或者多個數據文件,以及一個或者多個日志文件所組成。數據文件可以被分為用戶定義的文件組。表和索引也可以映射到不同的文件組,以控制物理磁盤上文件放置的位置。 文件組是一個方便的管理單位,能夠大大提高靈活性。對於一個TB級的數據庫,既使 不考慮備份的速度,要在一個window裡備份整個數據庫也是不可能的。SQL Server 7.0使 你能夠用輪換的方案每個晚上備份數據庫的不同部分。
對於那些知道在何處放置索引和表的熟練用戶來說,文件組的運做將非常有效。SQL Server 7.0能夠非常高效地工作而不需要文件組,所以許多系統就不需要指定用戶定義的 文件組。在這種情況下,所有的文件都包含在缺省的文件組裡,SQL Server 7.0能夠在數 據庫中迅速地分配數據。 日志文件不是文件組的一部分。日志空間的管理與數據空間的管理是分離的。 使用文件和文件組能夠通過多個磁盤、多個磁盤控制器或者RAID系統創建一個數據庫, 從而改善數據庫的性能。例如,如果你的計算機有四個磁盤,你就能夠創建一個由三個數據 文件和一個日志文件所組成的數據庫,每個磁盤上放一個文件。訪問數據的時候,四個讀寫 頭都能夠同時地並行訪問數據,這樣就加速了數據庫的操作。
另外,由於可以在指定的文件組裡創建一個表,所以文件和文件組能夠促成更好的數據 放置。由於一個特定表的所有I/O都可以在指定的磁盤上直接控制,從而能夠改善性能。例 如一個頻繁使用的表可以被放置在某個文件組的某個文件裡,位於某個磁盤,而數據庫中其 他較少訪問到的表就可以放置在位於另一個磁盤的另一個文件組。
對於文件和文件組有一些通用的建議:
大多數只有單個文件和單個日志文件的數據庫運作很好。 如果你計劃使用多個文件,請把主文件用於系統表和系統對象,並且至少創建一個 從文件來存儲用戶數據和對象。 為了盡可能地提高性能,請把文件和文件組盡量創建在不同的本地物理磁盤上,並 且把對於空間競爭最為激烈的對象放置在不同的文件組裡。 使用文件組,把對象放置在指定的物理磁盤上。 把同一個連接查詢中用到的不同的表放置在不同的文件組裡。這樣磁盤I/O能夠並 行地查找連接的數據,從而可以改善性能。 把頻繁訪問的表和屬於這些表的非聚集索引放置在不同的文件組裡。如果文件位於 不同的物理磁盤,磁盤I/O就能夠並行,從而可以改善性能。 不要把日志文件放置在與其他文件和文件組相同的物理磁盤上。 文件的空間分配和空間管理有了許多改進,記錄從頁面到對象關系的數據結構也被重新 設計了。取代鏈接頁表的是位圖的使用,因為它們更簡潔,並且利於並行查找。