摘要:[筆記]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 BY、ORDER 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)、xml、text或 image 資料行的位元組數 |
2^31-1 |
2^31-1 |
每個 ntext 或 nvarchar(max) 資料行的字元數 |
2^30-1 |
2^30-1 |
每份資料表的叢集索引數 |
1 |
1 |
GROUP BY、ORDER 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 子句內相異運算式的數目:CUBE、ROLLUP、GROUPING SETS、WITH CUBE、WITH 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 約 51hr) https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015
線上課程教學,遠距教學 (ASP.NET MVC 約 140hr) https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab
寫信給我,不要私訊 -- mis2000lab (at) yahoo.com.tw 或 school (at) mis2000lab.net
(1) 第一天 ASP.NET MVC5 完整影片(5.5小時 / .NET 4.x版)免費試聽。影片 https://youtu.be/9spaHik87-A
(2) 第一天 ASP.NET Core MVC 完整影片(3小時 / .NET Core 6.0~8.0)免費試聽。影片 https://youtu.be/TSmwpT-Bx4I
[學員感言] mis2000lab課程評價 - ASP.NET MVC , WebForm 。 https://mis2000lab.medium.com/%E5%AD%B8%E5%93%A1%E6%84%9F%E8%A8%80-mis2000lab%E8%AA%B2%E7%A8%8B%E8%A9%95%E5%83%B9-asp-net-mvc-webform-77903ce9680b
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 MVC => .NET Core MVC 線上教學 ...... 第一天課程 完整內容 "免費"讓您評估 / 試聽
[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講 事先錄好的影片,並非上課側錄! 觀看時,有如「一對一」面對面講課。