SQL SERVER的數(shù)據庫設計優(yōu)化技術_第1頁
SQL SERVER的數(shù)據庫設計優(yōu)化技術_第2頁
SQL SERVER的數(shù)據庫設計優(yōu)化技術_第3頁
SQL SERVER的數(shù)據庫設計優(yōu)化技術_第4頁
SQL SERVER的數(shù)據庫設計優(yōu)化技術_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

精品文檔-下載后可編輯SQLSERVER的數(shù)據庫設計優(yōu)化技術【摘要】SQLSERVER是占有市場份額較大的一個關系數(shù)據庫管理系統(tǒng),本文討論在數(shù)據庫設計階段的優(yōu)化技術——估算數(shù)據庫初始大小。

【關鍵詞】數(shù)據庫SQLSERVER

OptimizationsOnDataBaseDesignOfSQLSERVER

YueLi

【Abstract】

SQLSERVERisakindofDBMSwhichispopularused,thepaperexplorestheoptimizationsondatabasedesign.——estimatingtheinitialsizeoftheDataBase

【Keywords】

Database;SQLSERVER

一個數(shù)據庫實例能夠以最佳狀態(tài)運行是以良好的設計為基礎并配合合理的硬件部署和軟件協(xié)助實現(xiàn)的。本文針對占有市場份額很大的數(shù)據庫產品SQLSERVER,從數(shù)據庫實例的設計階段估算數(shù)據庫初始大小來闡述優(yōu)化數(shù)據庫的關鍵技術。

根據概念結構設計的結果我們可以得出數(shù)據庫的具體結構,從而進行合理的部署。數(shù)據庫的初始大小就是一個關鍵問題。數(shù)據庫初始大小過大,會浪費我們不必要的硬盤空間,數(shù)據庫初始大小過小,SQLServer會經常根據需要進行數(shù)據庫的擴容,從而增加了系統(tǒng)運行負擔,因此數(shù)據庫的初始大小是優(yōu)化技術的另一個關鍵。那么數(shù)據庫的初始大小應該設計為多大合適呢?

SQLSERVER的數(shù)據庫存儲空間的大小由以下幾個因素決定:堆或者聚集索引的大小,非聚集索引的大小。本篇僅對堆進行討論。

1.估算堆的大小

①估算表中將存儲的行數(shù):

Num_Rows=表中的行數(shù)

②指定固定長度和可變長度列的數(shù)量,并計算存儲所需的空間:

計算每組列在數(shù)據行中所占據的空間。列的大小取決于數(shù)據類型和長度說明。

Num_Cols=總列數(shù)(固定長度和可變長度)

Fixed_Data_Size=所有固定長度列的總字節(jié)數(shù)

Num_Variable_Cols=可變長度列的數(shù)量

Max_Var_Size=所有可變長度列的最大字節(jié)數(shù)

③保留行中稱為空位圖的部分以管理列的為空性。計算大?。?/p>

Null_Bitmap=2+((Num_Cols+7)/8)取整數(shù)部分

④計算可變長度數(shù)據的大小:假設所有可變長度列均百分之百充滿

如果表中有可變長度列,確定在行中存儲這些列所用的空間:

Variable_Data_Size=2+(Num_Variable_Colsx2)+Max_Var_Size

如果預計可變長度列占用的存儲空間比例較低,可以按照該比例調整Max_Var_Size值,從而對整個表的大小得出一個更準確的估計。

如果沒有可變長度列,則Variable_Data_Size取值為0。

⑤計算總的行大?。?/p>

Row_Size=Fixed_Data_Size+Variable_Data_Size+Null_Bitmap+4

其中的數(shù)值4是數(shù)據行的行標題開銷。

⑥計算每頁的行數(shù)(每頁大小為8K,頁首的12個字節(jié)用于存儲頁的基本信息,因此有8096可用字節(jié)):

Rows_Per_Page=8096/(Row_Size+2)

由于行的存儲不能跨頁,因此每頁的行數(shù)應向下舍入到最接近的整數(shù)。公式中的數(shù)值2是計算行數(shù)時引入的行大小余量。

⑦計算存儲所有行所需的頁數(shù):

Num_Pages=Num_Rows/Rows_Per_Page

估計的頁數(shù)應向上舍入到最接近的整數(shù)。

⑧計算在堆中存儲數(shù)據所需的空間量(每頁的總字節(jié)為8192):

堆大?。ㄗ止?jié))=8192xNum_Pages

2.下面以employees表為例,估算存儲該表所需的堆空間大小。

表結構如下:

CreatetableEmployees

(EmployeeIDint,

LastNamenvarchar(20),

FirstNamenvarchar(10),

Titlenvarchar(30),

Birthdaydatatime

HireDatedatatime

Adressnvarchar(60),

Citynvarchar(15),

PostalCardnvarchar(10),

HomePhonenvarchar(12),

)

其中的固定長度列有EmployeeID,Birthday,HireDate共計3列。

其中可變長度列有LastName,F(xiàn)irstName,Title,Adress,City,PostalCard,HomePhone共計7列。

固定長度列的總字節(jié)數(shù):Fixed_Data_Size=(int)4+(datetime)8+(datetime)8=20

假設所有可變長度列均百分之百充滿,Max_Var_Size取表中的Address列的長度60,則可變長度列的總字節(jié)數(shù):Variable_Data_Size=2+(7x2)+60=76

保留空位圖大?。篘ull_Bitmap=2+((10+7)/8)=3(下取整)

行的總大?。篟ow_Size=20+76+3+4=103

每頁的行數(shù):Rows_Per_Page=8096/(103+2)=77

假定該表將存儲1000條記錄,則存儲所有行所需的頁數(shù):

Num_Pages=1000/77=13(上取整)

該表存儲所需的空間量:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論