文章編號: 827968 - 上次校閱: 2007年11月20日 - 版次: 4.7

估計的 SQL Server CE 或 SQL Server 2005 Mobile Edition 資料庫大小的方式

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

結論

本文將告訴您,如何以估計 Microsoft SQL Server 2000 Windows CE 版資料庫或 Microsoft SQL Server 2005 Mobile Edition 資料庫的大小。不過,此估計值無法因為下, 面是可能的原因判斷真實的精確度:
  • 系統資料表的大小可能會不同,尤其是當您使用 SQL Server CE 或 SQL Server 2005 Mobile 版的同步處理。
  • 估計值不會不計算索引所採取的空間。
  • 為了簡單起見,估計假設連續的列儲存體 (也就是您壓縮資料庫之後)。SQL Server CE 或 SQL Server 2005 Mobile 版將資料列儲存 4 KB 頁面上,它不會跨對於 文字ntext 資料型別以外的網頁分割資料列。因為不永遠填滿所有網頁,一些未使用的空間會存在於個別的頁面上。而且,如果網頁有資料列,而且有些那些資料列刪除,空間,讓刪除的資料列不是回收直到壓縮資料庫。如果在網頁中的所有列被都刪除,頁面會稍後回收。
  • 某些資料型別的長度可能會依據它們包含),包括 nvarcharntext 資料類型的資料而有所不同。當您估計的資料行大小時,估計根據最大的資料行大小的不是在資料行中儲存的資料的實際的大小。比方就說如果資料行有 nvarchar(50) 的資料型別,且值為"Hello",資料行的實際大小會 5 個位元組,但是估計的大小為 50 個位元組。

其他相關資訊

估計的資料表或資料庫的大小時, 請考慮下列資訊:
  • 資料表中的每個資料列有 6 個位元組的造成負擔。
  • 在資料表中的每一欄都有 1 個位元組加上 1 個位元組的資料列儲存每個 256 個位元組的造成負擔。
  • 固定長度資料型別有的每個資料行的 1 個位元組的額外負荷,並且額外負荷進位到下一個較高的位元組。
  • 零長度字串資料行資料列中佔用 1 個位元組。
  • SQL Server CE 或 SQL Server 2005 Mobile 版會將資料儲存 Unicode 格式。如果用來建立資料庫的定序字串雙位元組字集 (DBCS) 語言 (如漢字) 的字串資料行的大小會增加一倍,因為每個位元組儲存為 2 個位元組。如果用來建立資料庫定序字串的單一位元組字集 (SBCS) 語言 (如英文),SQL Server CE 移除前置的未使用的位元組。為結果 SBCS 估計為每個字元的 1 個位元組的定序字串。
  • 如果在合併複寫中使用 SQL Server CE 資料表] 或 [SQL Server 2005 Mobile 版資料表,有每個資料表的三個系統資料行。
  • 如果 SQL Server CE 資料表或 SQL Server 2005 Mobile 版資料表參與遠端資料存取 (RDA) 有 2 的系統資料行的每個資料表。
下表說明在 SQL Server CE 和儲存大小為每個資料型別中的資料型別。
摺疊此表格展開此表格
資料型別描述
bigint整數 (完整數字) 資料從-2 ^63 (-9,223,372,036,854,775,808) 到 2 ^63-1 (9,223,372,036,854,775,807)。儲存大小是 8 個位元組。
整數整數 (完整數字) 資料從-2 ^31 (-2,147,483,648) 到 2 ^31-1 (2,147,483,647)。 儲存大小是 4 個位元組。
smallint從 –32 768 到 32,767 的整數資料。儲存大小是 2 個位元組。
微整數整數資料是從 0 到 255 之間。儲存大小是 1 個位元組。
位元整數資料是以 1 或 0 的值。
數字 (p,s)固定有效位數及小數位數數字 (Numeric) 資料是從-10 ^38 + 1 到 10 ^38? 1。p 指定精確度,,可以介於 1 和 38 之間變動。s 指定縮放和可能不盡相同介於 0 到 p.數字永遠使用不論其精確度及小數位數的 19 位元組。
金錢貨幣資料值從-2 ^63 (-922,337,203,685,477.5808) 到 2 ^63-1 (922,337,203,685,477.5807),正確率-的千分之十貨幣單位。儲存大小是 8 個位元組。
浮點數浮點數編號資料是從-1.79E + 308 到 1.79E + 308 存放區大小為 8 位元組。
真實浮點有效位數的數字資料是從-3.40E + 38 到 3.40E + 38。
日期時間日期與時間資料從 1753 年 1 月 1,年十二月 31 9999 精確度為一三位百分之一的一的第二個或 3.33 毫秒。 值會四捨五入到增量 000、.003 或.007 毫秒為單位)。儲存為兩個 4-位元組的整數。前 4 個位元組儲存在基底的日期 (1900 年 1 月 1,) 之前或之後的天數。基底的日期是在系統參考日期。 不允許的值的 日期時間 早於 1753 年 1 月 1。其它 4 個位元組將午夜後一天時間的儲存為毫秒數。秒有一個有效範圍是從 0 到 59。
國家 (地區) character(n)同義資料表: nchar(n)固定長度的 Unicode 資料最大長度為 255 個字元。預設長度為 1。儲存大小的以位元組為單位),是兩次輸入的字元數目。
國家 (地區) 的字元 varying(n)同義資料表: nvarchar(n)(長度為 1 到 255 個字元的可變長度 Unicode 資料。預設長度為 1。儲存大小的以位元組為單位),是兩次輸入的字元數目。
ntext可變長度 Unicode 資料的最大長度 (2 ^30-2) / 2 (536,870,911) 字元。儲存大小的以位元組為單位),是輸入的字元數兩倍。
binary(n)固定長度二進位資料 510 位元組的最大長度。預設長度為 1。
varbinary(n)最大長度是 510 位元組的可變長度二進位資料。預設長度為 1。
影像變數長度的二進位資料,最大長度為 2 ^30 – 1 (1,073,741,823) 個位元組。
uniqueidentifierGUID。儲存大小是 16 個位元組。
IDENTITY [(s, i)]這是資料行不是不同的資料類型的屬性。只有整數資料型別資料行可用於識別資料行。資料表可以有一個識別資料行。您可以指定種子與遞增值,且無法更新資料行。s (識別值種子) = 起始值 i (遞增) = 遞增值。
ROWGUIDCOL這是資料行不是不同的資料類型的屬性。這是使用 uniqueidentifier 資料型別來定義的資料表中的資料行。一個資料表只能有一個 ROWGUIDCOL 資料行。

如果您使用的 SQL Server 2005 Mobile 版

關於資料型別,在 SQL Server 2005 Mobile 版中的詳細資訊,請參閱 < 資料型別 > 中 SQL Server 2005 線上叢書 》 的主題。

在下列情況中某個資料表的大小估計資料類型資料行]、 [資料列數目]、 [定序] 和 [同步處理類型而定。

案例 1

在這種情況下估計 myTableA1 資料表的大小。資料表有下列特性:
  • myTableA1 資料表有 10,000 的資料列。
  • myTableA1 資料表建立與預設英文定序,資料表並不會使用任何形式的 SQL Server CE 同步處理。
下表說明 myTableA1 表格中的每一欄的類型及每個資料行所佔的位元組數目。
摺疊此表格展開此表格
資料行資料類型大小 (以位元組為單位) 高架位元組
1nvarchar251
2nchar251
3bigint81
4日期時間81
N/A額外負荷N/A6
總計6610
myTableA1 資料表中的每一資料列的總大小是 76 (66 + 10) 個位元組。因為資料表 10,000 列 myTableA1 資料表的總大小會是 760,000 位元組 (76 * 10,000)。 計算會考慮 nvarchar 資料型別的最大的大小,因為這是只估計資料表大小。資料表的實際大小可能會依據儲存 nvarchar 資料型別中的值而有所不同。

附註如果資料行中的資料值都應該大幅變化,您必須使用 nvarchar 資料型別來減少資料庫大小。

案例 2

在這種情況下估計 myTableA2 資料表的大小。資料表有下列特性:
  • myTableA2 資料表有 91 列。
  • 以預設英文定序,建立 myTableA2 資料表,而且資料表用於合併式複寫。
下表說明 myTableA2 表格中的每一欄的類型及每個資料行所佔的位元組數目。
摺疊此表格展開此表格
資料行資料類型大小 (以位元組為單位) 高架位元組
[客戶編號]nvarchar51
[供應商nvarchar401
[連絡人]nvarchar301
連絡人職稱nvarchar301
地址nvarchar601
縣/市nvarchar151
區域nvarchar151
[郵遞區號]nvarchar101
國家 (地區)nvarchar151
電話nvarchar241
傳真nvarchar241
N/A資料列負荷N/A6
N/A對於大於 256 個位元組的 額外負荷N/A1
N/A複寫的的 整數41
N/AUniqueIdentifier 複寫161
N/A二進位241
總計31221
myTableA2 資料表的每個資料列的總大小是 333 (312 + 21) 個位元組。因為資料表 91 列 myTableA2 資料表的總大小會是 30,303 位元組。 因為字串資料行值的實際大小未知的此大小為只估計值。

案例 3

在這種情況下估計 myTableA3 資料表的大小。表參與 RDA,並具有下列特性:
  • myTableA3 資料表有 91 列。
  • myTableA3 資料表建立與預設英文定序,而 」 這個資料表主索引鍵資料行,因為它們作為其中一個的 RDA 追蹤系統資料行的一部份。
下表說明 myTableA3 表格中的每一欄的類型及每個資料行所佔的位元組數目。
摺疊此表格展開此表格
資料行資料類型大小 (以位元組為單位) 高架位元組
[客戶編號](PK)nvarchar51
[供應商(PK)nvarchar401
[連絡人]nvarchar301
連絡人職稱nvarchar301
地址nvarchar601
縣/市nvarchar151
區域nvarchar151
[郵遞區號]nvarchar101
國家 (地區)nvarchar151
電話nvarchar241
傳真nvarchar241
N/A資料列負荷N/A6
N/A對於大於 256 個位元組的 額外負荷N/A1
N/ARDA 的 整數41
N/A二進位 的 RDA 主索引鍵資料行中的每個資料行的 4 個位元組加上個位元組的資料行的值如果主索引鍵是已變更,否則 1 個位元組)53/1
總計325/27320
如果變更主索引鍵資料表的總大小會是 345 (325 + 20) 個位元組的每個資料列。因為 myTableA3 資料表 91 列大小會是資料表的 31,395 位元組。如果不會變更主索引鍵資料表的總大小是 293 (273 + 20) 個位元組的每個資料列。因為 myTableA3 資料表 91 列大小會是資料表的 26,663 位元組。因為字串資料行值的實際大小未知的這是一個估計值。

這篇文章中的資訊適用於:
  • Microsoft SQL Server 2000 Windows CE Edition 2.0
  • Microsoft SQL Server 2000 Windows CE Edition 1.1
  • Microsoft SQL Server 2000 Windows CE Edition
  • Microsoft SQL Server 2005 Compact Edition
關鍵字:?
kbmt kbtable kbdatabase kbinfo KB827968 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:827968? (http://support.microsoft.com/kb/827968/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。