熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows系統管理 >> 正文

修改數據庫(設置數據庫選項)

2022-06-13   來源: Windows系統管理 

  可以為每個數據庫都設置若干個決定數據庫特點的數據庫級選項只有系統管理員數據庫所有者以及 sysadmin 和 dbcreator 固定服務器角色和 db_owner 固定數據庫角色的成員才能修改這些選項這些選項對於每個數據庫都是唯一的而且不影響其它數據庫可以使用 ALTER DATABASE 語句的 SET 子句sp_dboption 系統存儲過程或者在某些情況下使用 SQL Server 企業管理器設置數據庫選項
  說明 通過使用 sp_configure 系統存儲過程或者 SQL Server 企業管理器可以設置服務器范圍的設置
  設置了數據庫選項之後將自動發出一個檢查點它會使修改立即生效
  
  若要更改新創建數據庫的任意數據庫選項的默認值請更改 model 數據庫中的適當數據庫選項例如對於隨後創建的任何新數據庫如果希望 AUTO_SHRINK 數據庫選項的默認設置都為 ON則將 model 的 AUTO_SHRINK 選項設置為 ON
  
  有五類數據庫選項
  
  自動選項
  
  
  游標選項
  
  
  恢復選項
  
  
  SQL 選項
  
  
  狀態選項
  自動選項
  自動選項控制某些自動行為
  
  AUTO_CLOSE
  
  當設置為 ON 時在數據庫的最後一個用戶退出而且數據庫中的所有過程都完成時數據庫將關閉並完全退出系統從而釋放所有資源默認情況下當使用 Microsoft® SQL Server&#; Desktop Engine 時對於所有數據庫此選項都設置為 ON而對於所有其它版本都設置為 OFF與操作系統無關當用戶試圖再次使用數據庫時該數據庫將自動重新打開如果數據庫完全退出系統則該數據庫不會重新打開直到下一次 SQL Server 重新啟動時用戶試圖使用該數據庫為止當為 OFF 時即使當前沒有用戶使用數據庫數據庫仍然保持打開狀態
  
  AUTO_CLOSE 選項對於桌面數據庫很有用因為它允許將數據庫文件作為常規文件進行管理它們可以移動復制以制作備份或者甚至通過電子郵件發送給其他用戶如果應用程序與 SQL Server 反復建立連接和斷開連接則不應對這樣的應用程序所訪問的數據庫使用 AUTO_CLOSE 選項在每個連接之間關閉和重新打開數據庫的開銷將削弱性能
  
  此選項的狀態可以通過檢查 DATABASEPROPERTYEX 函數的 IsAutoClose 屬性來確定
  
  AUTO_CREATE_STATISTICS
  
  當設置為 ON 時將在謂詞中使用的列上自動創建統計添加統計將提高查詢性能因為 SQL Server 查詢優化器可以更好地確定如何估算查詢如果未使用統計則 SQL Server 將自動刪除它們當設置為 OFF 時SQL Server 不自動創建統計相反可以手動創建統計
  默認情況下AUTO_CREATE_STATISTICS 為 ON
  
  此選項的狀態可通過檢查 DATABASEPROPERTYEX 函數的 IsAutoCreateStatistics 屬性來確定
  
  AUTO_UPDATE_STATISTICS
  
  當設置為 ON 時因為更改表中數據而造成統計過期時將自動更新現有的統計當設置為 OFF 時現有的統計不會自動更新而可以手動更新該統計
  默認情況下將 AUTO_UPDATE_STATISTICS 設置為 ON
  
  此選項的狀態可以通過檢查 DATABASEPROPERTYEX 函數的 IsAutoUpdateStatistics 屬性來確定
  
  AUTO_SHRINK
  
  當設置為 ON 時數據庫文件可作為定期收縮的對象數據文件和日志文件都可以自動由 SQL Server 收縮當設置為 OFF 時在定期檢查未使用空間的過程中數據庫文件不自動收縮默認情況下當使用 SQL Server 桌面版時對於所有數據庫此選項都設置為 ON而對於所有其它版本都設置為 OFF與操作系統無關
  
  如果將數據庫設置為 SIMPLE 恢復模型或備份日志則 AUTO_SHRINK 只減小事務日志的大小
  
  當文件中超過百分之二十五的部分包含未使用的空間時AUTO_SHRINK 選項將導致收縮文件文件將收縮至未使用空間占文件 % 的大小或收縮至文件創建時的大小兩者之間取其大
  
  不能收縮只讀數據庫
  
  此選項的狀態可通過檢查 DATABASEPROPERTYEX 函數的 IsAutoShrink 屬性來確定
  
  游標選項
  游標選項控制游標的行為和作用域
  
  CURSOR_CLOSE_ON_COMMIT
  
  當設置為 ON 時在提交事務時所有打開的游標都將自動關閉(遵從 SQL 規范)默認情況下此設置為 OFF並且游標仍然在各事務邊界間保持打開狀態僅當連接關閉或被顯式關閉時才會關閉游標
  
  連接級設置(使用 SET 語句設置)替代 CURSOR_CLOSE_ON_COMMIT 的默認數據庫設置默認情況下當連接到 SQL Server 時ODBC 和 OLE DB 客戶端發出連接級 SET 語句以將會話的 CURSOR_CLOSE_ON_COMMIT 設置為 OFF
  此選項的狀態可通過檢查 DATABASEPROPERTYEX 函數的 IsCloseCursorsOnCommitEnabled 屬性來確定
  
  CURSOR_DEFAULT LOCAL | GLOBAL
  
  如果設置了 CURSOR_DEFAULT LOCAL且創建游標時沒有將其定義為 GLOBAL則對於在其中創建游標的批處理存儲過程或觸發器游標的作用域都是局部游標名僅在該作用域內有效在批處理存儲過程觸發器或存儲過程 OUTPUT 參數中該游標可由局部游標變量引用當批處理存儲過程或觸發器終止時游標將被隱式釋放除非它在一個 OUTPUT 參數中傳遞回來如果 OUTPUT 參數將游標傳遞回來則游標在最後引用它的變量釋放或離開作用域時釋放
  
  如果設置了 CURSOR_DEFAULT GLOBAL且在創建游標時沒有將其定義為 LOCAL則游標的作用域對於連接是全局的在由連接執行的任何存儲過程或批處理中都可以引用該游標名稱該游標僅在斷開時被隱式釋放CURSOR_DEFAULT GLOBAL 是默認設置
  此選項的狀態可通過檢查 DATABASEPROPERTYEX 函數的 IsLocalCursorsDefault 屬性來確定
  
  恢復選項
  恢復選項控制數據庫的恢復模型
  
  RECOVERY FULL | BULK_LOGGED | SIMPLE
  
  指定 FULL 時數據庫備份和事務日志備份用於提供從媒體故障中完全恢復的能力包括大容量操作(如 SELECT INTOCREATE INDEX 和大容量裝載數據)在內的所有操作都將完整記入日志
  指定 BULK_LOGGED 時對所有 SELECT INTOCREATE INDEX 和大容量裝載數據操作的日志記錄是最小的因此所需的日志空間較少這種模式可獲得更好的性能和更少的日志空間使用量但是丟失數據的危險比使用完整恢復要大
  指定 SIMPLE 時只能將數據庫恢復到上一次完整數據庫備份或上一次差異備份
  SIMPLE 是 SQL Server 桌面版和數據引擎的默認設置FULL 是所有其它版本的默認設置
  
  此選項的狀態可通過檢查 DATABASEPROPERTYEX 函數的 Recovery 屬性來確定
  
  TORN_PAGE_DETECTION
  
  此恢復選項允許 SQL Server 檢測由於電源故障或其它系統停歇導致的未完成的 I/O 操作
  
  當設置為 ON 時只要一個 KB 的數據庫頁寫入磁盤該頁的每個 字節扇區都有一位被翻轉當 SQL Server 以後讀取該頁時如果有一個位發生錯誤則該頁將被錯誤寫入這樣就會檢測到一個殘缺頁通常在恢復期間檢測到殘缺頁因為錯誤寫入的任何頁都可能在恢復時被讀取
  
  雖然 SQL Server 數據庫頁是 KB但是磁盤使用 字節的扇區執行 I/O 操作因此每個數據庫頁要寫 個扇區如果在操作系統將第一個 字節扇區寫到磁盤和完成 KB I/O 操作之間系統失敗(例如由於電源故障)則可能出現殘缺頁如果數據庫頁的第一個扇區在失敗之前成功地寫入磁盤則磁盤上的數據庫頁將顯示為更新過的盡管可能沒有更新成功
  
  
  
  說明 使用備用電池的磁盤高速緩存可以保證數據成功地寫到磁盤上或者根本就不寫
  
  
  如果檢測到殘缺頁將出現一個 I/O 錯誤並斷開連接如果在恢復過程中檢測到殘缺頁則數據庫也會被標記為可疑應該還原數據庫備份並應用所有事務日志備份因為它在物理上是不一致的
  
  默認情況下TORN_PAGE_DETECTION 為 ON
  
  此選項的當前設置可通過檢查 DATABASEPROPERTYEX 的 IsTornPageDetectionEnabled 屬性來確定
  
  SQL 選項
  SQL 選項控制 ANSI 遵從選項
  
  ANSI_NULL_DEFAULT
  
  允許用戶控制數據庫默認為空未顯式指定 NULL 或 NOT NULL 時用戶定義的數據類型或列定義將使用為空性的默認設置為空性由會話或數據庫設置確定Microsoft® SQL Server&#; 默認為 NOT NULL對於 ANSI 兼容性數據庫選項 ANSI_NULL_DEFAULT 設置為 ON 將使數據庫默認設置更改為 NULL
  
  當此選項設置為 ON 時在 CREATE TABLE 或 ALTER TABLE 語句過程中沒有顯式定義為 NOT NULL 的所有用戶定義的數據類型或列都將默認為允許空值使用約束定義的列都將遵循約束規則而無視此設置
  
  連接級設置(使用 SET 語句設置)替代 ANSI_NULL_DEFAULT 的默認數據庫級設置默認情況下當連接到 SQL Server 時ODBC 和 OLE DB 客戶端發出連接級 SET 語句以將會話的 ANSI_NULL_DEFAULT 設置為 ON
  此選項的狀態可通過檢查 DATABASEPROPERTYEX 函數的 IsAnsiNullDefault 屬性來確定
  
  ANSI_NULLS
  
  當設置為 ON 時所有與空值比較的值都取值為 NULL(未知)當設置為 OFF 時如果兩個值都為 NULL則非 Unicode 值與空值比較的值都取值為 TRUE默認情況下ANSI_
From:http://tw.wingwit.com/Article/os/xtgl/201311/9200.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.