sqlserver單位,sqlserver單位換算的表

sqlserver 怎么設(shè)置size屬性的單位

語句:

創(chuàng)新互聯(lián)成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目做網(wǎng)站、網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元黃驊做網(wǎng)站,已為上家服務(wù),為黃驊各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

disk??init??name=設(shè)備名,??physname=物理名,??vdevno=設(shè)備號,??size=設(shè)備大小

解釋:

[設(shè)備名]是數(shù)據(jù)庫設(shè)備的名稱,必須是唯一的。

[物理名]是數(shù)據(jù)庫設(shè)備對應(yīng)的操作系統(tǒng)內(nèi)的實際位置,是一個文件系統(tǒng)名。

[設(shè)備號]的取值從3到255。必須是唯一的。

[設(shè)備大小]是以2K為單位的,不是MB。

例:

use??master

disk??init??name=’TestDB_Dev’,?physname=’c:\mssql\data\test_dev.dat’,?vdevno=6,?size=40960

該語句創(chuàng)建了一個名為TestDB_Dev?的80M的設(shè)備。

語句:

create??database??數(shù)據(jù)庫名??on??數(shù)據(jù)庫設(shè)備=數(shù)據(jù)庫設(shè)備大小??log?on??日志設(shè)備=日志設(shè)備大小

解釋:

[數(shù)據(jù)庫名]:要創(chuàng)建的數(shù)據(jù)庫的名稱,必須是唯一的。

[數(shù)據(jù)庫設(shè)備]:指在哪個數(shù)據(jù)庫設(shè)備上創(chuàng)建該數(shù)據(jù)庫。

[日志設(shè)備]:指[數(shù)據(jù)庫名]的日志創(chuàng)建在哪個數(shù)據(jù)庫設(shè)備上。

[數(shù)據(jù)庫設(shè)備大?。莺停廴罩驹O(shè)備大?。荩阂訫B為單位。

若不指定設(shè)備的大小,則缺省分配的設(shè)備大小為2MB。

例:

1.???use??master

create??database??TestDB??on??TestDB_Dev=80??log?on??TestDB_Log=10

該語句創(chuàng)建了一個名為TestDB的數(shù)據(jù)庫,該數(shù)據(jù)庫創(chuàng)建在設(shè)備TestDB_Dev上,大小為80M。同時該數(shù)據(jù)庫的日志單獨放在另一設(shè)備TestDB_Log,大小為10M。

sqlserver2019每個數(shù)據(jù)文件的基本存儲單位大小

sqlserver2019每個數(shù)據(jù)文件的基本存儲單位為8KB。根據(jù)查詢相關(guān)公開信息,數(shù)據(jù)文件的初始存儲大小為13MB,每個數(shù)據(jù)文件的基本存儲單位的大小是8KB,每1MB數(shù)據(jù)文件可以容納128頁,頁是sqlserver2019中用于數(shù)據(jù)存儲的最基本單位。

SqlServer是如何管理,分配存儲空間的呢

Sql Server 區(qū)管理(GAM,SGAM)

大家都知道Sql Server 中數(shù)據(jù)文件存儲的最小單位是頁面(Page),但實際SQLSERVE并不是以頁面為單位給數(shù)據(jù)分配空間的,Sql Server默認(rèn)的存儲分配單位是盤區(qū)(Extend)。這樣做的主要原因是為了避免頻繁的讀寫IO,提升性能。在表或其它對象分配存儲空間,不是直接分配一個8K的頁面,而是以一個盤區(qū)(Extend)為存儲分配單位,一個盤區(qū)為8個頁面(Size = 8*8K=64K)。

這樣,對區(qū)得操作就會非常頻繁,也要求Sql Server有自己的一套系統(tǒng)管理著數(shù)量眾多的區(qū)。其中最突出的出一個問題,那就是在存儲那些只有少量數(shù)據(jù),不足8K的對象,如果也是分配給一個盤區(qū),就會存在存儲空間上的浪費,降低了空間分配效率。

為解決上述問題,SQLSERVER提供了一種解決方案,定義了兩種盤區(qū)類型,統(tǒng)一盤區(qū)和混合盤區(qū)。

全局分配映射表 (GAM)?:統(tǒng)一盤區(qū),GAM 頁記錄已分配的區(qū)。每個 GAM 包含 64,000 個區(qū),相當(dāng)于近 4 GB 的數(shù)據(jù)。GAM 用一個位來表示所涵蓋區(qū)間內(nèi)的每個區(qū)的狀態(tài)。如果位為 1,則區(qū)可用;如果位為 0,則區(qū)已分配。?

共享全局分配映射表 (SGAM)?:由多個對象共同擁有該盤區(qū),SGAM 頁記錄當(dāng)前用作混合區(qū)且至少有一個未使用的頁的區(qū)。每個 SGAM 包含 64,000 個區(qū),相當(dāng)于近 4 GB 的數(shù)據(jù)。SGAM 用一個位來表示所涵蓋區(qū)間內(nèi)的每個區(qū)的狀態(tài)。如果位為 1,則區(qū)正用作混合區(qū)且有可用頁。如果位為 0,則區(qū)未用作混合區(qū),或者雖然用作混合區(qū)但其所有頁均在使用中。?

在實際為對象分配存儲盤區(qū)時,為了提高空間利用率,默認(rèn)的情況下,如果一個對象一開始大小小于8個頁面,就盡量放在混合盤區(qū)中,如果該對象大小增加到8個頁面后,SQLSERVER會為這個對象重新分配一個統(tǒng)一盤區(qū)。

據(jù)區(qū)當(dāng)前的使用情況,GAM 和 SGAM 中每個區(qū)具有以下位模式:

這將簡化區(qū)管理算法。若要分配統(tǒng)一區(qū),數(shù)據(jù)庫引擎將在 GAM 中搜索為 1 的位,并將其設(shè)置為 0。若要查找具有可用頁的混合區(qū),數(shù)據(jù)庫引擎將在 SGAM 中搜索為 1 的位。若要分配混合區(qū),數(shù)據(jù)庫引擎將在 GAM 中搜索為 1 的位,將其設(shè)置為 0,然后將 SGAM 中對應(yīng)的位設(shè)置為 1。若要釋放區(qū),數(shù)據(jù)庫引擎確保將 GAM 位設(shè)置為 1,將 SGAM 位設(shè)置為 0。實際上,數(shù)據(jù)庫引擎內(nèi)部使用的算法比本主題中介紹的更為復(fù)雜,因為數(shù)據(jù)庫引擎在數(shù)據(jù)庫中均勻分布數(shù)據(jù)。但是,由于無需管理區(qū)分配信息鏈,因此即使是實際算法也會被簡化。

管理Sql Server可用空間

首先摘錄段 MSDN 的一段官方解釋:

頁可用空間 (PFS) 頁記錄每頁的分配狀態(tài),是否已分配單個頁以及每頁的可用空間量。PFS 對每頁都有一個字節(jié),記錄該頁是否已分配。如果已分配,則記錄該頁是為空、已滿 1% 到 50%、已滿 51% 到 80%、已滿 81% 到 95% 還是已滿 96% 到 100%。

將區(qū)分配給對象后,數(shù)據(jù)庫引擎將使用 PFS 頁來記錄區(qū)中的哪些頁已分配或哪些頁可用。數(shù)據(jù)庫引擎必須分配新頁時,將使用此信息。保留的頁中的可用空間量僅用于堆和 Text/Image 頁。數(shù)據(jù)庫引擎必須找到一個具有可用空間的頁來保存新插入的行時,使用此信息。索引不要求跟蹤頁的可用空間,因為插入新行的點是由索引鍵值設(shè)置的。

在數(shù)據(jù)文件中,PFS 頁是文件頭頁之后的第一頁(頁碼為 1)。接著是 GAM 頁(頁碼為 2),然后是 SGAM 頁(頁碼為 3)。第一個 PFS 頁之后是一個大小大約為 8,000 頁的 PFS 頁。在第 2 頁的第一個 GAM 頁之后還有另一個 GAM 頁(包含 64,000 個區(qū)),在第 3 頁的第一個 SGAM 頁之后也有另一個 SGAM 頁(包含 64,000 個區(qū))。下圖顯示了數(shù)據(jù)庫引擎用來分配和管理區(qū)的頁順序。

看過之后,讓人一頭霧水,真是不知所云,真佩服這些 MSDN 是如何翻譯的,看來中文 MSDN 太不靠譜,最后沒辦法,只能google了

其實上面說的意思就是:Sql Server 管理可用空間的方法是,查找每個每個頁面是否使用,以及使用情況情況。這時就需要一個頁面來記錄各個頁面的使用情況了,這就是 PFS 頁。

PFS(Page Free Space),也叫頁面自由空間,該頁面用來跟蹤一個文件中每一個特定的頁面的利用率情況。一個文件中第二個頁面(頁碼1)就是PFS頁面,該頁面的每個字節(jié)都記錄了相應(yīng)頁面的分配情況、頁面類型、是否IAM頁、是否包含刪除記錄、以及空間利用率信息;PFS能夠管理和跟蹤8088個頁面的使用情況,即接近64M的空間,以后每8088個頁面將再出現(xiàn)一次。

讓我們首先了解一下PFS的頁面管理字節(jié)的構(gòu)造,管理單位為字節(jié),每字節(jié)管理一個頁面。

第0個bit為保留字節(jié),始終為0

第1個bit表示該頁面是否已分配,我們知道GAM頁用來管理區(qū)是否已分配,但一個區(qū)包含8個頁面,所以用該bit用來準(zhǔn)確定位該區(qū)的某個頁面是否已分配出去了。

第2個bit表示該頁面是否混合分區(qū)的一個頁面。

第3個bit表示該頁面是否是一個IAM(索引分配映射)頁面。

第4個bit表示該頁面中是否包含幻影或已刪除記錄,這有助于SQL Server定期清理幻影或已刪除記錄。

第5~7個頁面表示該頁面的空間使用率情況。

本文題目:sqlserver單位,sqlserver單位換算的表
文章路徑:http://muchs.cn/article42/phjchc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站Google、網(wǎng)站維護、品牌網(wǎng)站建設(shè)、定制開發(fā)、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管