[筆記]SQL Server 2012 與 2014功能比較表

摘要:[筆記]SQL Server 2012 與 2014功能比較表





 

 

 

以下資料均源自微軟官方網站

 

版本功能:

2014  http://msdn.microsoft.com/zh-tw/library/cc645993.aspx

2012  http://msdn.microsoft.com/zh-tw/library/cc645993(v=sql.110).aspx

AlwaysOn 可用性群組 -- SQL 2014 Enterprise (最多 8 個次要複本,包括 2 個同步次要複本)

Standard版,2014 2012無差別。

 

 

最大容量規格:

2014  http://msdn.microsoft.com/zh-tw/library/ms143432.aspx

2012  http://msdn.microsoft.com/zh-tw/library/ms143432(v=sql.110).aspx

 

 

SQL 2014新功能: In-Memory OLTP (記憶體中最佳化)

企業版(Enterprise)才有此功能。

l   記憶體中 OLTP 是 SQL Server 2014 的新功能,此一記憶體最佳化資料庫引擎已整合至 SQL Server 引擎,並針對 OLTP 最佳化。

l   記憶體中 OLTP 對於執行短期交易的 OLTP 效能改善最有利。

l   記憶體中 OLTP 改善的程式設計模式,包括並行案例、點查閱。 舉凡大量執行插入和更新的工作負載,以及預存程序中的商務邏輯。

l   與 SQL Server 的整合意味著記憶體最佳化資料表和磁碟資料表可並存於相同的資料庫中,而且您將能跨這兩類資料表進行查詢。

 

記憶體容量的規劃,請看: http://msdn.microsoft.com/zh-tw/library/dn282389.aspx

記憶體最佳化資料表資料列包含三個部分:

l   時間戳記 -- 資料列標頭/時間戳記 = 24 個位元組。

l   索引指標 -- 針對資料表中的每個雜湊索引,每個資料列具有 8 位元組位址指標,指向索引的下一個資料列。 由於有 4 個索引,因此每個資料列都會配置 32 個位元組給索引指標 (每個索引有 8 位元組指標)。

l   資料 -- 資料列的資料部分大小是由每個資料行的類型大小總和來判斷。 在資料表中,我們有五個 4 位元組整數、三個 50 位元組字元資料行,以及一個 30 位元組字元資料行。 因此,每個資料列的資料部分為 4 + 4 + 4 + 4 + 4 + 50 + 50 + 30 + 50 (或 200) 個位元組。

 

以下是記憶體最佳化資料表中 5,000,000 (5 百萬) 個資料列的大小計算。 資料列所使用的記憶體總數估計如下:

 

配置給資料表資料列的記憶體

從上述計算得知,記憶體最佳化資料表的每個資料列大小為 24 + 32 + 200 (或 256) 個位元組。 由於我們有 5 百萬個資料列,因此資料表會耗用 5,000,000 * 256 (或 1,280,000,000) 個位元組,大約是 128 GB。

 

 

根據以下比較表,SQL 2012 / 2014兩版並無差異。

 

Database Engine 物件

下表指定 SQL Server 資料庫中已定義或 Transact-SQL 陳述式中所參考之各種物件的大小和數目上限。

SQL Server Database Engine 物件

2012

大小/數目上限 SQL Server (64 位元)

2014

大小/數目上限 SQL Server (64 位元)

批次大小1

65,536 * 網路封包大小

65,536 * 網路封包大小

每個短字串資料行的位元組數

8,000

8,000

每個 GROUP BYORDER BY 的位元組數

8,060

8,060

每個索引鍵的位元組數2

900

900

每個外部索引鍵的位元組數

900

900

每個主索引鍵的位元組

900

900

每個資料列的位元組數8

8,060

8,060

記憶體最佳化資料表中的每列位元組 9

無(N/A)

8,060

預存程序之來源文字的位元組數

批次大小或 250 MB 當中較小者

批次大小或 250 MB 當中較小者

每個varchar(max)varbinary(max)xmltext image 資料行的位元組數

2^31-1

2^31-1

每個 ntext  nvarchar(max) 資料行的字元數

2^30-1

2^30-1

每份資料表的叢集索引數

1

1

GROUP BYORDER BY 的資料行

僅受限於位元組數

僅受限於位元組數

GROUP BY WITH CUBE WITH ROLLUP 陳述式中的資料行或運算式

10

10

每個索引鍵的資料行數7

16

16

每個外部索引鍵的資料行數

16

16

每個主索引鍵的資料行數

16

16

每個非寬型資料表的資料行數

1,024

1,024

每個寬型資料表的資料行數

30,000

30,000

每個 SELECT 陳述式的資料行數

4,096

4,096

每個 INSERT 陳述式的資料行數

4096

4096

每個用戶端的連接數目

已設定之連接的最大值

已設定之連接的最大值

資料庫大小

524,272 TB

524,272 TB

每個 SQL Server 執行個體的資料庫數目

32,767

32,767

每個資料庫的檔案群組數

32,767

32,767

記憶體最佳化資料的每個資料庫檔案群組

無(N/A)

1

每個資料庫的檔案數

32,767

32,767

檔案大小 (資料)

16 TB

16 TB

檔案大小 (記錄檔)

2 TB

2 TB

每個資料庫之記憶體最佳化資料的資料檔案

無(N/A)

4.096

記憶體最佳化資料之每個資料檔案的差異檔案

無(N/A)

1

每個資料表的外部索引鍵資料表參考數4

253

253

識別碼長度 (字元數)

128

128

每部電腦的執行個體數

單機伺服器為 50 個執行個體。

當使用共用叢集磁碟做為叢集安裝的預存選項時,SQL Server 在容錯移轉叢集上可支援 25 個執行個體,若您選擇 SMB 檔案共用做為叢集安裝的儲存選項,則可在容錯移轉叢集上支援 50 個執行個體。如需詳細資訊,請參閱<資料檔的儲存類型>。

單機伺服器為 50 個執行個體。

當使用共用叢集磁碟做為叢集安裝的預存選項時,在容錯移轉叢集上可支援 25 個執行個體,若您選擇 SMB 檔案共用為叢集安裝的儲存選項,SQL Server 則可在容錯移轉叢集上支援 50 個執行個體。

每個記憶體最佳化資料表的索引

無(N/A)

8

包含 SQL 陳述式的字串長度 (批次大小)1

65,536 * 網路封包大小

65,536 * 網路封包大小

每個連接的鎖定數

每部伺服器的最大鎖定數

每部伺服器的最大鎖定數

每個 SQL Server 執行個體的鎖定數5

僅受限於記憶體

僅受限於記憶體

巢狀預存程序層級6

32

32

巢狀子查詢

32

32

巢狀觸發程序層級

32

32

每份資料表的非叢集索引數

999

999

當下列任何一個存在時,GROUP BY 子句內相異運算式的數目:CUBEROLLUPGROUPING SETSWITH CUBEWITH ROLLUP

32

32

GROUP BY 子句中由運算子產生的群組集合數目

4,096

4,096

每個預存程序的參數數目

2,100

2,100

每個使用者定義函數的參數數目

2,100

2,100

每份資料表的 REFERENCES

253

253

每份資料表的資料列數

受限於可用的儲存體

受限於可用的儲存體

每個資料庫的資料表數3

受限於資料庫的物件數

受限於資料庫的物件數

每份分割區資料表或索引的分割區數

15,000

15,000

非索引資料行的統計資料

30,000

30,000

每個 SELECT 陳述式的資料表數

僅受限於可用的資源

僅受限於可用的資源

每份資料表的觸發程序數3

受限於資料庫的物件數

受限於資料庫的物件數

每個 UPDATE 陳述式 (寬型資料表) 的資料行數

4096

4096

使用者連線

32,767

32,767

XML 索引

249

249

1 網路封包大小是表格式資料流 (TDS) 封包的大小,用於應用程式與關聯式 Database Engine 之間的通訊。 預設封包大小是 4 KB,由 network packet size 組態選項所控制。

2在 SQL Server 中,任何索引鍵的最大位元組數不得超過 900。 假設這些資料行內從未插入超過 900 位元組的資料,則您可使用大小上限累加超過 900 的可變長度資料行定義索引鍵。 在 SQL Server 中,您可以在非叢集索引中包含非索引鍵資料行,以避免達到最大索引鍵大小 900 個位元組。

3 資料庫物件包含像資料表、檢視、預存程序、使用者定義函數、觸發程序、規則、預設值和條件約束等物件。 資料庫中所有物件數的總和不得超過 2,147,483,647。

4雖然資料表可包含無限數目的 FOREIGN KEY 條件約束,但是建議的最大值為 253。 根據主控 SQL Server 的硬體組態而定,指定額外的 FOREIGN KEY 條件約束對於查詢最佳化工具的處理可能會耗費極大成本。

5 這個值是針對靜態鎖定配置。 動態鎖定僅受限於記憶體。

6如果預存程序存取超過 64 個資料庫或以交錯方式超過 2 個資料庫,您會收到錯誤訊息。

7 如果資料表包含一個或多個 XML 索引,則使用者資料表的叢集索引鍵限制為 15 個資料行,因為 XML 資料行會加入至主要 XML 索引的叢集索引鍵中。 在 SQL Server 中,您可以在非叢集索引中包含非索引鍵資料行,以避免達到最多 16 個索引鍵資料行的限制。 如需詳細資訊,請參閱<建立內含資料行的索引>。

8SQL Server 支援資料列溢位儲存體,好讓可變長度的資料行從資料列發送。 只有 24 位元組的根會儲存在從資料列發送之可變長度資料行的主要記錄中;因此,有效資料列限制高於舊版 SQL Server。 如需詳細資訊,請參閱《SQL Server 線上叢書》中的<超過 8 KB 的資料列溢位資料>主題。

9SQL Server 記憶體中 OLTP 不支援資料列溢位儲存。 可變長度資料行不是發送的資料列。 這會限制您可以在記憶體最佳化資料表中指定至最大資料列大小的可變長度資料行之最大寬度。 如需詳細資訊,請參閱<記憶體最佳化資料表中的資料表和資料列大小>。

 


 

SQL Server 公用程式物件

下表指定已經在 SQL Server 公用程式中測試之各種物件的大小和數目上限。

SQL Server 公用程式物件

2012

大小/數目上限 SQL Server (64 位元)

2014

大小/數目上限 SQL Server (64 位元)

每個 SQL Server 公用程式的電腦數 (實體電腦或虛擬機器)

100

100

每部電腦的 SQL Server 執行個體數

5

5

每個 SQL Server 公用程式的 SQL Server 執行個體總數

2001

2001

每個 SQL Server 執行個體的使用者資料庫數,包括資料層應用程式

50

50

每個 SQL Server 公用程式的使用者資料庫總數

1,000

1,000

每個資料庫的檔案群組數

1

1

每個檔案群組的資料檔案數

1

1

每個資料庫的記錄檔案數

1

1

每部電腦的磁碟區數

3

3

1 由 SQL Server 公用程式所支援的 SQL Server 受管理之執行個體最大數可能會根據伺服器的硬體組態而有所不同。 如需入門資訊,請參閱<SQL Server 公用程式的功能與工作>。 並非所有 SQL Server 2014 版本都提供 SQL Server 公用程式控制點。 如需 SQL Server 版本所支援的功能清單,請參閱<SQL Server 2014 版本支援的功能>。

 

SQL Server 資料層應用程式物件

下表指定已經在 SQL Server 資料層應用程式 (DAC) 中測試之各種物件的大小和數目上限。

SQL Server DAC 物件

2012

大小/數目上限 SQL Server (64 位元)

2014

大小/數目上限 SQL Server (64 位元)

每個 DAC 的資料庫數

1

1

每個 DAC 的物件數1

受限於資料庫的物件數或可用的記憶體。

受限於資料庫的物件數或可用的記憶體。

1此限制所包括的物件類型為使用者、資料表、檢視表、預存程序、使用者定義函數、使用者定義資料類型、資料庫角色、結構描述和使用者定義資料表類型。

 

複寫物件

下表指定 SQL Server 複寫中已定義之各種物件的大小和數目上限。

SQL Server 複寫物件

2012

SQL Server 大小/數目上限 (64 位元)

2014

SQL Server 大小/數目上限 (64 位元)

發行項 (合併式發行集)

256

256

發行項 (快照式或交易式發行集)

32,767

32,767

資料表中的資料行1 (合併式發行集)

246

246

資料表中的資料行2 (SQL Server 快照式或交易式發行集)

1,000

1,000

資料表中的資料行2 (Oracle 快照式或交易式發行集)

995

995

用於資料列篩選之資料行的位元組數 (合併式發行集)

1,024

1,024

用於資料列篩選之資料行的位元組數 (快照式或交易式發行集)

8,000

8,000

1 如果使用資料列追蹤來進行衝突偵測 (預設值),則基底資料表可包括的資料行行數上限為 1,024,不過,因為必須從發行項篩選資料行,所以發行的資料行行數上限為 246。 如果使用資料行追蹤,則基底資料表可包括的資料行數上限為 246。

2基底資料表可包含發行集資料庫中允許的最大資料行數 (如果是 SQL Server,則為 1,024 個),但如果資料行超出對發行集類型指定的最大值,則必須篩選發行項的資料行。

 

 

 

 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

線上課程,遠距教學 (Web Form 49hr)  https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015

線上課程,遠距教學 (ASP.NET MVC 75hr)  https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab

ASP.NET MVC線上課程 第一天 免費看 (5.5小時) 

寫信給我,不要私訊 --  mis2000lab (at) yahoo.com.台灣  或  school (at) mis2000lab.net


ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。 

................   facebook社團   https://www.facebook.com/mis2000lab   ......................

................  YouTube (ASP.NET) 線上教學影片  https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/

 

Blog文章 "附的範例" 無法下載,請看 這裡 ...... https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download

請看我們的「售後服務」範圍(嚴格認定)

......................................................................................................................................................

...................................................................................................................................................... 

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課

 

ASP.NET MVC 5 線上教學

累積時數約 75小時...... 第一天(5.5小時)完整內容,"免費"讓您評估