少子高齢化を地図にしてみる動画

政府統計局のデータから Excel Power Map へ。Excel Power Query つかって、
Excel Power Pivot へとりこんで、
Excel Power Map の地図にする。Excel Online: 人口統計.xlsx, http://1drv.ms/1fC8lzA

期間 1920年~2010年
年齢区分 14才以下,15才~64才, 65 才以上

14才以下の人口を、65才以上の人口が追い越してく

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

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

3 秒 = 6 億件, 列ストアインデックス

3 秒 = 6 億件, 列ストアインデックス

3 秒 = 6 億件, 列ストアインデックス .. をつかって TPC-H クエリー1 が 32論理コアのサーバーにて。
TPC-H は、意思決定支援のデータベース用ベンチマーク.列ストアインデックスは、SQL Server 2014 の意思決定のクエリー用のデータベースインデックス.

 3 秒

は、クエリー1 の処理時間.
6 億 = TPC-H の LINEITEM テーブルのレコード数
2 個 = Intel Xeon E5-2580 2..7GHz
16 個 = CPU 物理コア数
32 個 = CPU 論理コア数
512 GB = メモリサイズ
100 = DBGEN -s の引数
Query 1 = 計測クエリー
SQL Server 2014 Enterprise CTP2 = データベースシステム
Clustered Columnstore Index テーブル = ORDERS, LINEITEM
測定方法: 構文解析とコンパイルの時間 0, 物理読み取り数 0 の時間

 TPC_H Query 1

SELECT
  L_RETURNFLAG,
  L_LINESTATUS,
  SUM(L_QUANTITY) AS SUM_QTY,
  SUM(L_EXTENDEDPRICE) AS SUM_BASE_PRICE,
  SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT)) AS SUM_DISC_PRICE,
  SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT)*(1+L_TAX)) AS SUM_CHARGE,
  AVG(L_QUANTITY) AS AVG_QTY,
  AVG(L_EXTENDEDPRICE) AS AVG_PRICE,
  AVG(L_DISCOUNT) AS AVG_DISC,
  COUNT(*) AS COUNT_ORDER
FROM LINEITEM
WHERE L_SHIPDATE <= dateadd(dd, -90, cast('1998-12-01' as datetime))
GROUP BY L_RETURNFLAG, L_LINESTATUS
ORDER BY L_RETURNFLAG,L_LINESTATUS

 3 秒 vs. 8 秒

3 秒は、32 個のCPU 論理コアの物理サーバでの処理時間.
8 秒は、12 個のCPU 論理コアの仮想サーバでの処理時間.

SQL Server 2014 Enterprise Edition の列ストアインデックスみてる.