認識及操作SQL Server 資料庫

weixin_34391854發表於2009-05-28

關於系統資料庫

系統資料庫中的MaserModelmdsb 及 tempdb的各功能及任務介紹

   MaserMaser資料庫記錄了SQL Server 系統的所有系統資訊包括所有登入帳戶與所有的系統配置設定

   Tempdb:聯機至系統的所有使用者之臨時表與預存程式都儲存此。

   ModelModel資料庫可作為資料庫模板,當報行CREATE DATABASE 語句時,系統將先複製Model資料庫的內容,接著再將新資料庫的其他部分予以填入

資料庫的組成

   資料表:這是資料庫最基本物件,其目的是儲存記錄,所有資料庫應用皆發端於此,它是資料庫的基礎建設

   資料庫關係圖:也就是關聯,建立多個資料懷後,表與表之間必須有關聯,方有其實務上的意義

   檢視表:也就是查詢,「檢視」之意是它可使用一或多個資料表為基礎,建立查詢,此時的查詢就像為資料庫建立不同的觀看角度,故檢視表的英文原名是「View

   預存程式:這是相當重要的元件,只要會開發及使用預存程度,就可以說在SQL Server 的開發跨出一大步。預存程式是編譯成一個報行單元的一組Transact-SQL語句。對於必須經常報的工作,可以將所需的SQL語句與邏輯,設計與編寫在一個預存程式中,前端應用程式再報行預存程式即可,重點是所有工作都在伺服器上進行,所以預存程式是做為資料庫管理人員的重要工具

   觸發程式:是一種特殊的預存程式,它的功能是針對資料表產生UPDATEINSERTDELETE等動作後,自動報行的程式

   自定義函式:是指由一或多個Transact-SQL語句組成的副程 它可用來封裝程式程式碼,以便重複使用。SQL Server提供的函式稱為內建函式,另也可自定義,稱為使用者目訂函式。函式的目的是傳回報行結果

   自定義資料型態:使用者自定義的資料型別是以SQL Server提供的系統型別為基礎,加以重新命名及定義的自定義型號,它的吏用時機是當多個資料表必須在一個欄位中使用相同的資料型別,且這些欄位的資料型別、長度和NULL值屬性完全一樣時

   規則:是針對欄位的值進行檢查的條件,一個欄位可以同時具有一個規則、一或多個關關、一或多個條件約束等,只有符合所有條件的合法值,可以儲存。而規則僅是多種可以檢查資料是否合法的功能之一

   預設值:可指定給欄位的功能,目的是當產生新記錄時,若在有預設值的欄位未輸入資料,就直接套用預設值

T-SQL控制及瞭解資料庫

   T-SQL查詢資料:T-SQL可分為兩大類,分別是SQL及非SQL的部份,SQL語法的功能是針對資料庫的記錄進行處,包括查詢、刪除、新增、更改等

   檢視伺服器組態設定

 

 

管理索引片段

 

索引與SQL Server 2005中建立的其他物件不同。如果沒有適當的維護,索引可能會在一段時間之後失去功效,因為支援這些索引的索引頁會產生片段的現象。索引片段(index fragmentation)的層級與索引維護的程度,通常會決定在執行查詢時,SQL Server查詢優化器會使用哪些索引。優化工具也會終止使用片段程度很大的索引,這會嚴重傷害查詢的效能。

每當資料表內容修改時,都有可能發生索引片段的現象,而且這項修改也會影響到索引頁。每當程式針對資料表內容執行INSERTDELETEUPDATE作業時,這個資料表對應的叢集與非叢集索引也會受到影響。執行DELETE作業的程式通常會釋出基礎索引頁的空間,這會讓索引頁只

包含一部份的索引列,正常情況下它們應該是滿的。索引頁未被填滿的情況,被稱為內部片段(internal fragmentation)。在出現內部片段之後,索引頁就無法有效運用磁碟空間,並會增加存放相同數量索引列所需的頁數。索引頁數的增加會讓SQL Server將大量的索引頁讀入記憶體,才能滿足對索引的READ作業。分頁(paging)是從硬碟子系統中,將資料或索引頁讀入記憶體的實體動作。由於硬碟子系統通常都是伺服器上速度最慢的元件,任何能減少分頁數量的動作,都有助於改善SQL Server的整體效能。

如果需要放置索引列或資料列的頁面,已經達到單一資料或索引頁能包含的資訊量上限,INSERTUPDATE作業就可能讓SQL Server增加額外的索引頁。

SQL Server需要將額外的資料列加入資料頁或索引頁,而這個頁面已經無法容納額外的內容時,就會產生資料頁分裂(page split)的現象,它會增加新的頁面,而且SQL Server會將原始頁面上的資料或索引資訊,分配到原始的頁面與新頁面上。資料頁分裂會按照索引鍵維護資料列的邏輯順序,SQL Server知道下一個索引鍵所在的頁面。不過,資料頁分裂不會維護頁面的實體順序,新的頁面通常不會緊接在原始頁面之後。當頁面的實體順序不連

貫時,就是所謂的外部片段(external fragmentation)。

在索引中,外部片段永遠都是不願意見到的情形。然而,在交易量很高的資料庫中,少量的內部片段則是值得的,因為它可以防止大量的資料頁分裂。不過,大量的內部與外部片段,都會對資料的擷取產生負面的影響。在內部片段的情形中,資料列會很不平均地分散在大量的頁面上。此時,如果要將索引頁讀入記憶體,SQL Server必須執行許多磁碟的I/O作業。

NOTE∣資料與索引頁的大小上限在SQL Server 2005中,單一資料或索引頁允許的上限是8,060位元組。單一頁面上允許的索引列或資料列數量,是8,060除以個別索引列或資料列大小的結果。例如,假設有一個索引包含800位元組的資料行索引值,則SQL Server在每個索引頁上只能儲存10個索引列。

 

相關文章