12 倍, 24 倍

12 倍, 24 倍

12 倍, 24 倍 .. インメモリテーブルの処理時間倍率, SQL Server 2014。
インメモリテーブルは、テーブルをメモリへつくる機能。
SQL Server 2014 Enterprise は、インメモリテーブルできる。

 ディスクのテーブルと。

インメモリのテーブルの処理時間と、くらべる.
12 倍 = SCHEMA_AND_DATA設定の インメモリテーブル がはやい.
24 倍 = SCHEMA_ONLY 設定の インメモリテーブル がはやい.

 SCHEMA_AND_DATA,

インメモリのテーブルの DURABILITY 設定
SCHEMA_AND_DATA のインメモリのテーブルは、ディスクへデータを保存する。
SCHEMA_ONLY のインメモリのテーブルは、ディスクへデータを保存しない。

 10,000 トランザクション x 100 同時.

負荷をかけてみる。
サンプルデータベースは、[AdventureWorks2012].
トランザクションは、受注処理.

1,000,000,000 トランザクション時間は、コーヒーをひとくち飲む時間.

広告

40% はやい

40% はやい

40% はやい .. ストアドプロシージャのネイティブコンパイル, SQL Server 2014.
ストアドプロシージャのネイティブコンパイルは、ストアドプロシージャを DLL へ
変える SQL Server 2014 Enterprise の機能.

 40%

insert と update とをインメモリのテーブルへ負荷をかけてみる.
40% ストアドプロシージャをネイティブコンパイルすると、はやくなる.
ネイティブコンパイルの対象テーブルは、インメモリのテーブル.

 WITH NATIVE_COMPILATION

ストアドプロシージャの抜粋..
CREATE PROCEDURE [Sales].[usp_UpdateSalesOrderShipInfo_native]
 @SalesOrderID uniqueidentifier ,
 @ShipDate datetime2,
 @Comment nvarchar(128),
 @Status tinyint,
 @TaxRate smallmoney,
 @Freight money,
 @CarrierTrackingNumber nvarchar(25)
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
AS
BEGIN ATOMIC WITH
(TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N’us_english’)

 [AdventureWorks2012]

サンプルURL = https://msftdbprodsamples.codeplex.com/releases
サンプル負荷 = aw_inmem_sample_sql_2014_ctp2.zip
対象ストアドプロシージャ:
 usp_InsertSalesOrder
 usp_UpdateSalesOrderShipInfo

テーブルをインメモリへ、ストアドプロシージャをネイティブコンパイルへ.

インメモリ, 列ストアインデックスの実行プラン

インメモリ, 列ストアインデックスの実行プラン

インメモリ, 列ストアインデックス .. の実行プランをあじわってみる。
データベースは、Microsoft SQL Server 2014 ベータ版。
データとクエリーは、TPC-H。
ハードウェアは、Intel NUC D54250WYK。

インメモリは、メモリ最適化データベース。
列ストアインデックスは、非クラスター化インメモリ列ストアインデックス。
CPU は、Core i5、2 コア、4 スレッド。
メモリは、16 GB。

 xVelocity

わくわくが、xVelocity にある。
非クラスター化インメモリ列ストアインデックスは、xVelocity つかってる。
“An xVelocity memory optimized columnstore index, groups and stores data for each column and then joins all the columns to complete the whole index”

600 万件 から 3,000 万件へ LINEITEM をふやしてみよう。