SlideShare a Scribd company logo
データベース
第12回
トランザクションと同時実⾏制御
1
2015年6⽉25⽇(⽊) 7・8時限
担当:奥 健太
トランザクションと
データベース構造編
回 ⽇付 テーマ
12 6/25 トランザクションと同時実⾏制御
13 7/2 トランザクションと障害回復
14 7/9 データベース構造とインデックス
2
トランザクションと
データベース構造編での学習⽬標
3
トランザクションを理解する
データベースの同時実⾏制御の仕組みを理
解する
データベースの障害回復⽅法を理解する
効率的なデータアクセスのためのデータ
ベース構造およびインデックスを理解する
同時実⾏制御
4
vs.
復習
同時実⾏制御
5
¥20,000引出 ¥50,000振込
READ READ
WRITE
Y=Y-¥20,000
Y=¥20,000
Y=¥0 Y=Y+¥50,000
Y=¥70,000
WRITE
更新の喪失
¥50,000でなければおかしい…
同時実⾏制御
6
¥20,000引出
¥50,000振込
READ
READ
WRITE
Y=Y-¥20,000
Y=¥20,000
Y=¥0
Y=Y+¥50,000
Y=¥50,000
WRITE
同時実⾏制御
回 ⽇付 テーマ
12 6/25 トランザクションと同時実⾏制御
13 7/2 トランザクションと障害回復
14 7/9 データベース構造とインデックス
7
 トランザクション,ロック,同時実⾏制御
について学ぶ
トランザクションとは
8
例;振替送⾦
9
(1) ⼝座Aの残⾼から10万円を引く
⼝座Aから⼝座Bへ10万円を振替送⾦
UPDATE 銀⾏⼝座 SET 残⾼ = 残⾼-10 WHERE ⼝座 = 'A';
(2) ⼝座Bの残⾼に10万円を⾜す
UPDATE 銀⾏⼝座 SET 残⾼ = 残⾼+10 WHERE ⼝座 = 'B';
⼝座 残⾼
A 20
B 5
銀⾏⼝座
⼝座 残⾼
A 10
B 5
銀⾏⼝座
(1) ⼝座 残⾼
A 10
B 15
銀⾏⼝座
(2)
1トランザクション
例;アイテムの購⼊
(1) 薬草の在庫数を3個減らす
ユーザ=アリスが1個10Gの薬草を3個購⼊
UPDATE 在庫 SET 残数 = 残数-3 WHERE アイテム名 = '薬草';
(2) ユーザの所有アイテム数を3個増やす
UPDATE 所有アイテム SET 所有数 = 所有数+3 WHERE ユーザ名
= 'アリス' AND アイテム名 = '薬草';
(3) ユーザの所持⾦を30G減らす
UPDATE 所持⾦ SET 所持⾦ = 所持⾦-30 WHERE ユーザ名 = '
アリス';
(4) ユーザの購⼊履歴を更新する
INSERT INTO 購⼊履歴 VALUES('薬草', '2014/3/30');
1トランザクション
トランザクション
11
利⽤者からみたときの処理の単位
トランザクションの
もつべき特性
同時実⾏制御の仕組み
本⽇の講義で学ぶこと
12
トランザクションのもつべき特性
13
ACID特性
A
C
I
D
成功か失敗か
14
例;振替送⾦
15
(1) ⼝座Aの残⾼から10万円を引く
⼝座Aから⼝座Bへ10万円を振替送⾦
UPDATE 銀⾏⼝座 SET 残⾼ = 残⾼-10 WHERE ⼝座 = 'A';
(2) ⼝座Bの残⾼に10万円を⾜す
UPDATE 銀⾏⼝座 SET 残⾼ = 残⾼+10 WHERE ⼝座 = 'B';
⼝座 残⾼
A 20
B 5
銀⾏⼝座
⼝座 残⾼
A 10
B 5
銀⾏⼝座
(1) ⼝座 残⾼
A 10
B 15
銀⾏⼝座
(2)
⼝座 残⾼
A 10
B 15
例;振替送⾦
16
データベースダウン!
(1) ⼝座Aの残⾼から10万円を引く
⼝座Aから⼝座Bへ10万円を振替送⾦
UPDATE 銀⾏⼝座 SET 残⾼ = 残⾼-10 WHERE ⼝座 = 'A';
(2) ⼝座Bの残⾼に10万円を⾜す
UPDATE 銀⾏⼝座 SET 残⾼ = 残⾼+10 WHERE ⼝座 = 'B';
⼝座 残⾼
A 20
B 5
銀⾏⼝座
⼝座 残⾼
A 10
B 5
銀⾏⼝座
(1)
銀⾏⼝座
(2)
10万円はどこへ消えた!?
17
⼝座 残⾼
A 20
B 5
銀⾏⼝座
⼝座 残⾼
A 10
B 5
銀⾏⼝座
(1)
Atomicity(原⼦性)を保証せよ
18
成功か失敗か
コミットかロールバックか
例;振替送⾦
19
(1) ⼝座Aの残⾼から10万円を引く
⼝座Aから⼝座Bへ10万円を振替送⾦
⼝座 残⾼
A 20
B 5
UPDATE 銀⾏⼝座 SET 残⾼ = 残⾼-10 WHERE ⼝座 = 'A';
銀⾏⼝座
(2) ⼝座Bの残⾼に10万円を⾜す
UPDATE 銀⾏⼝座 SET 残⾼ = 残⾼+10 WHERE ⼝座 = 'B';
⼝座 残⾼
A 10
B 5
銀⾏⼝座
(1) ⼝座 残⾼
A 10
B 15
銀⾏⼝座
(2)
コミット
例;振替送⾦
20
データベースダウン!
(1) ⼝座Aの残⾼から10万円を引く
⼝座Aから⼝座Bへ10万円を振替送⾦
UPDATE 銀⾏⼝座 SET 残⾼ = 残⾼-10 WHERE ⼝座 = 'A';
(2) ⼝座Bの残⾼に10万円を⾜す
UPDATE 銀⾏⼝座 SET 残⾼ = 残⾼+10 WHERE ⼝座 = 'B';
⼝座 残⾼
A 20
B 5
銀⾏⼝座
⼝座 残⾼
A 10
B 5
銀⾏⼝座
(1)
ロールバック
例;振替送⾦
21
データベースダウン!
(1) ⼝座Aの残⾼から10万円を引く
⼝座Aから⼝座Bへ10万円を振替送⾦
UPDATE 銀⾏⼝座 SET 残⾼ = 残⾼-10 WHERE ⼝座 = 'A';
⼝座 残⾼
A 20
B 5
銀⾏⼝座
⼝座 残⾼
A 10
B 5
銀⾏⼝座
(1)
ロールバック
(1)の処理はなかったことに
Atomicity(原⼦性)
22
 トランザクションでのデータ操作は,すべてが
実⾏されているか,いずれも実⾏されていない
かのどちらかであるという性質
原⼦:事物を構成する最⼩単位
トランザクション:処理を構成する最⼩単位
ALL or NOTHING
トランザクションのもつべき特性
23
ACID特性
Atomicity
C
I
D
制約に従え
24
例;商品番号の変更
25
商品番号 商品名
110 ノートPC
250 外付けHDD
330 USBメモリ
420 ディスプレイ
伝票番号 商品番号 売上数
123 330 10
124 250 5
125 420 2
126 110 1
商品表 売上表
商品番号を330→340に変更
商品番号 商品名
110 ノートPC
250 外付けHDD
340 USBメモリ
商品番号420を削除
整合性がとれなくなる
復習
Consistency(整合性)を保証せよ
26
データベース全体で整合性を維持
整合性維持機能
27
商品番号 商品名
110 ノートPC
250 外付けHDD
330 USBメモリ
420 ディスプレイ
伝票番号 商品番号 売上数
123 330 10
124 250 5
125 420 2
126 110 1
商品表 売上表
商品番号 商品名
110 ノートPC
250 外付けHDD
340 USBメモリ
420 ディスプレイ
整合性を維持
340
売上表も変更商品番号を330→340に変更
商品番号420を削除
復習
Consistency(整合性)
28
 トランザクションが終了した時点では,データ
ベースの内容には⽭盾がなく,整合性(⼀貫
性)のある状態になっているという性質
トランザクションのもつべき特性
29
ACID特性
Atomicity
Consistency
I
D
⼀つ⼀つの処理を
隔離せよ
30
データベースの同時実⾏制御
31
データベース
(DB)
例;ホテルの部屋の予約(1)
32
部屋 残室数
シングル 5
空室状況
①残室数を確認
SELECT
5
②残室数を確認
ボブ キャロル
時
間
経
過 残室数が⼀つしか減らない
更新の喪失
SELECT
5
部屋 残室数
シングル 4
③部屋を予約
UPDATE
-1 ④部屋を予約
UPDATE
-1
部屋 残室数
シングル 4
例;ホテルの部屋の予約(2)
33
部屋 残室数
シングル 1
空室状況
①残室数を確認
SELECT
1
③残室数を確認
ボブ キャロル
時
間
経
過
空室があるのに
「空室なし」と
表⽰される
SELECT
0
部屋 残室数
シングル 0
②部屋を予約
UPDATE
-1
部屋 残室数
シングル 1
ROLLBACK
④キャンセル
ダーティリード
例;商品の在庫数
34
商品番号 在庫数
110 50
在庫
①在庫数を確認
SELECT
50
④在庫数を確認
時
間
経
過
同じ問合せを
連続で⾏ったのに,
結果が異なる
SELECT
30
商品番号 在庫数
110 30
③商品を出荷
UPDATE
-20
ノンリピータブルリード
②在庫数を確認
SELECT
50
例;成績の集計
35
学⽣番号 成績
1001 80
1002 62
1003 74
成績
③平均の算出
時
間
経
過
前の問合せではなかった
(幻の)タプルが出現
1004 84
②学⽣の追加
INSERT
ファントムリード
①平均の算出
SELECT AVG
72
SELECT AVG
75
直列化可能性
36
部屋 残室数
シングル 5
空室状況
①残室数を確認
SELECT
5
②残室数を確認
ボブ キャロル
時
間
経
過
SELECT
5
部屋 残室数
シングル 4
③部屋を予約
UPDATE
-1 ④部屋を予約
UPDATE
-1
部屋 残室数
シングル 4
直列化可能性
37
T1 T2
READ x READ x
x = x - 1
x = x - 1
WRITE x
WRITE x
READ:読込み
WRITE:書込み
初期値:x = 5
x = 4
T1
READ x
x = x - 1
WRITE x
T2
READ x
x = x - 1
WRITE x
初期値:x = 5
T2
READ x
x = x - 1
WRITE x
T1
READ x
x = x - 1
WRITE x
or
x = 3 x = 3このスケジュールは,
直列化可能でない
直列化可能な例
T1 T2
READ x
x = x - 1
WRITE x
READ x
READ y WRITE x
y = y - 1
WRITE y
READ y
y = y - 1
WRITE y
初期値:x = 5, y = 5 T1
READ x
x = x - 1
WRITE x
READ y
y = y - 1
WRITE y
or
T2
READ x
WRITE x
READ y
y = y - 1
WRITE y
T2
READ x
WRITE x
READ y
y = y - 1
WRITE y
T1
READ x
x = x - 1
WRITE x
READ y
y = y - 1
WRITE y
初期値:x = 5, y = 5
x = 4, y = 3 x = 4, y = 3x = 4, y = 3
このスケジュール
は直列化可能
Isolation(隔離性)を保証せよ
39
スケジュールを直列化可能にする
ロッキング
40
部屋 残室数
シングル 5
空室状況
(1) 残室数を確認
SELECT
5
(1) 残室数を確認
ボブ キャロル
時
間
経
過
SELECT
部屋 残室数
シングル 4
(2) 部屋を予約
UPDATE
-1
ロック
ロック時は
アクセス不可
1. データにアクセスする直前に
• ロックがかかっていなければロックする
• ロックがかかっていればアンロックされるまで待つ
2. データへのアクセスが終了した時点でアンロックする
ロッキング
(1) 残室数を確認
ボブ キャロル
時
間
経
過
SELECT
4
部屋 残室数
シングル 4
(2) 部屋を予約
UPDATE
-1
(2) 部屋を予約
UPDATE
-1
部屋 残室数
シングル 3
COMMIT
部屋 残室数
シングル 4
空室状況
ロック
ロッキングの問題点
42
 データを参照するだけでロックをかけると⾮効率
 並列性の低下
共有ロックと排他ロック
43
部屋 残室数
シングル 5
空室状況
(1) 残室数を確認
SELECT
5
(1) 残室数を確認
ボブ キャロル
時
間
経
過
SELECT
5
部屋 残室数
シングル 4
(2) 部屋を予約
UPDATE
-1
共有ロック
排他ロック
SELECT
5
OK
共有ロック
READ要求は許可するが,他の要求は許可
しないロック
– ユーザが読出し操作だけを⾏う場合にかける
44
共有ロック
書込み読出し
排他ロック
他のすべての処理要求を許可せず,⾃分だけ
で占有するロック
– ユーザが書込み操作を⾏おうとする場合にかける
45
排他ロック
書込み読出し
両⽴性⾏列
46
共有ロック 排他ロック
共有ロック
OK
排他ロック
トランザクション2が要求
トランザクション1
が要求
直列化可能性
T1 T2
LOCK x
READ x
x = x - 1
WRITE x
UNLOCK x
LOCK x
READ x
x = x - 1
WRITE x
UNLOCK x
READ:読込み
WRITE:書込み
初期値:x = 5
x = 3
T1
LOCK x
READ x
x = x - 1
WRITE x
UNLOCK x
T2
LOCK x
READ x
x = x - 1
WRITE x
UNLOCK x
初期値:x = 5
or
x = 3
LOCK:ロック
UNLOCK:アンロック
T2
LOCK x
READ x
x = x - 1
WRITE x
UNLOCK x
T1
LOCK x
READ x
x = x - 1
WRITE x
UNLOCK x
x = 3
このスケジュール
は直列化可能
Isolation(隔離性)
48
 トランザクション実⾏中の中間結果を他のトラ
ンザクションは⾒ることができないという性質
 同時に複数のトランザクションを実⾏した結果
と逐次実⾏した場合の結果は同じ
トランザクションのもつべき特性
49
ACID特性
Atomicity
Consistency
Isolation
D
直列化可能性を保証するために
50
T1
LOCK X
LOCK Y
READ X
X = X - 10000
WRITE X
READ Y
Y = Y + 10000
WRITE Y
UNLOCK X
UNLOCK Y
成⻑相
縮退相
ロックをかける相
ロックを解除する相
2相ロッキング
銀⾏⼝座X
銀⾏⼝座Y
¥10,000振込み
ボブ
銀⾏⼝座Yにアクセス
できるまで待機状態
ロックによる問題点
51
銀⾏⼝座Xにアクセス
できるまで待機状態
銀⾏⼝座X
銀⾏⼝座Y
¥10,000振込み
ボブによる排他ロック
¥5,000振込み
キャロルによる
排他ロック
ボブ キャロル
ロックによる問題点
52
T1 T2
LOCK X
LOCK Y
LOCK Y LOCK X
Yがアンロックされる
まで待機状態
Xがアンロックされる
まで待機状態
待機中…
デッドロック
複数のトランザクションが,他のトランザク
ションがロックしているデータが解除されるの
を待っていて,先に進めないでいる状態
デッドロックの検出
タイマーによる時間計測
待合せグラフによる検証
53
タイマーによる時間計測
54
 ロック待ち状態が⼀定時間以上続いた場合,
デッドロック状態と⾒なす
待合せグラフによる検証
55
T S
Sの終了を待っている
Tの終了を待っている
 トランザクションをノードとし,トランザクションTが
トランザクションSの終了を待っているときに,TからS
へのアークを設定することで作成されたグラフ
待合せグラフ
 待合せグラフ内にループが存在すれば,デッドロック
が発⽣していることがわかる
デッドロック発⽣時の対処法
 デッドロック状態にあるどちらかのロックを解
除(トランザクションを取り消す)
銀⾏⼝座X
銀⾏⼝座Y
¥10,000振込み
ボブによる排他ロック
ボブ キャロル
¥5,000振込み
キャロルによる
排他ロック
トランザクションのもつべき特性
57
ACID特性
Atomicity
Consistency
Isolation
D
トランザクションの
もつべき特性
同時実⾏制御の仕組み
まとめ
58
まとめ
59
ACID特性
Atomicity(原⼦性):成功か失敗か
Consistency(整合性):制約に従え
Isolation(隔離性):⼀つ⼀つの処理を隔離せよ
同時実⾏制御
ロッキング,共有ロック,排他ロック
直列化可能性
2相ロッキング,成⻑相,縮退相
デッドロック
本⽇学習したキーワード
〜トランザクションとデータベース構造編〜
60
2相ロッキング 縮退相 ハッシュ関数
ACID特性 順次編成ファイル ハッシュ結合
Atomicity(原⼦性) 障害回復 ハッシュの衝突
B+⽊インデックス 除算法 バランス⽊
B⽊インデックス ⼈的障害 ビフォアイメージ
Consistency(整合性) 成⻑相 ファイル
Durability(耐久性) ダーティリード ファントムリード
Isolation(隔離性) ダンプファイル フィールド
WALプロトコル チェックポイント マージ結合
アフタイメージ 中間ノード 待合せグラフ
⼊れ⼦結合 直接編成ファイル リーフノード
インデックス 直列化可能性 両⽴性⾏列
インデックスによる結合 データ部 ルートノード
インデックスファイル データベースダンプ レコード
基数変換法 データベースバックアップ ロールバック
共有ロック デッドロック ロールフォワード
更新の喪失 同時実⾏制御 ロギング
コミット トランザクション ログ(ジャーナル)
索引部 トランザクション障害 ログファイル
索引編成ファイル ノンリピータブルリード ロッキング
⾃乗・中央法 媒体障害 ロック
システム障害 排他ロック
シノニム ハッシュインデックス
これまでに学習したキーワード
〜トランザクションとデータベース構造編〜
61
2相ロッキング 縮退相 ハッシュ関数
ACID特性 順次編成ファイル ハッシュ結合
Atomicity(原⼦性) 障害回復 ハッシュの衝突
B+⽊インデックス 除算法 バランス⽊
B⽊インデックス ⼈的障害 ビフォアイメージ
Consistency(整合性) 成⻑相 ファイル
Durability(耐久性) ダーティリード ファントムリード
Isolation(隔離性) ダンプファイル フィールド
WALプロトコル チェックポイント マージ結合
アフタイメージ 中間ノード 待合せグラフ
⼊れ⼦結合 直接編成ファイル リーフノード
インデックス 直列化可能性 両⽴性⾏列
インデックスによる結合 データ部 ルートノード
インデックスファイル データベースダンプ レコード
基数変換法 データベースバックアップ ロールバック
共有ロック デッドロック ロールフォワード
更新の喪失 同時実⾏制御 ロギング
コミット トランザクション ログ(ジャーナル)
索引部 トランザクション障害 ログファイル
索引編成ファイル ノンリピータブルリード ロッキング
⾃乗・中央法 媒体障害 ロック
システム障害 排他ロック
シノニム ハッシュインデックス

More Related Content

What's hot

雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
Miki Shimogai
 
アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門
Akira Shimosako
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
infinite_loop
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Masahiko Sawada
 
V$SQLとその周辺でER図を描いてみよう!
V$SQLとその周辺でER図を描いてみよう!V$SQLとその周辺でER図を描いてみよう!
V$SQLとその周辺でER図を描いてみよう!
歩 柴田
 
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~Ryota Watabe
 
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
yoku0825
 
データベース入門
データベース入門データベース入門
データベース入門
拓 小林
 
Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話
terurou
 
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
T. Suwa
 
データベース09 - データベース設計
データベース09 - データベース設計データベース09 - データベース設計
データベース09 - データベース設計
Kenta Oku
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
 
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
kwatch
 
待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイントMasayuki Ozawa
 
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
 
Fault, Error, Failure の違い
Fault, Error, Failure の違いFault, Error, Failure の違い
Fault, Error, Failure の違い
Mizuhiro Kaimai
 

What's hot (20)

雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 
アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門
 
A35 SQL Server と NUMA by 熊澤幸生
A35 SQL Server と NUMA by 熊澤幸生A35 SQL Server と NUMA by 熊澤幸生
A35 SQL Server と NUMA by 熊澤幸生
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
 
V$SQLとその周辺でER図を描いてみよう!
V$SQLとその周辺でER図を描いてみよう!V$SQLとその周辺でER図を描いてみよう!
V$SQLとその周辺でER図を描いてみよう!
 
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
 
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
 
データベース入門
データベース入門データベース入門
データベース入門
 
Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話
 
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
 
データベース09 - データベース設計
データベース09 - データベース設計データベース09 - データベース設計
データベース09 - データベース設計
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
 
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
 
待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント
 
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
Fault, Error, Failure の違い
Fault, Error, Failure の違いFault, Error, Failure の違い
Fault, Error, Failure の違い
 

Viewers also liked

データベース14 - データベース構造とインデックス
データベース14 - データベース構造とインデックスデータベース14 - データベース構造とインデックス
データベース14 - データベース構造とインデックス
Kenta Oku
 
情報推薦システム入門:講義スライド
情報推薦システム入門:講義スライド情報推薦システム入門:講義スライド
情報推薦システム入門:講義スライド
Kenta Oku
 
データベース02 - SQL概要
データベース02 - SQL概要データベース02 - SQL概要
データベース02 - SQL概要
Kenta Oku
 
データベース01 - データベースとは
データベース01 - データベースとはデータベース01 - データベースとは
データベース01 - データベースとは
Kenta Oku
 
Rust (Ginzarb 20161114)
Rust (Ginzarb 20161114)Rust (Ginzarb 20161114)
Rust (Ginzarb 20161114)
Kevin Toyoda
 
【非エンジニアが 「明日からDevRelやってよ」って 突然言われて1年半やってきたこと ~teratailのDevRel担当、ゼロからの奮闘記~ @a...
【非エンジニアが 「明日からDevRelやってよ」って 突然言われて1年半やってきたこと  ~teratailのDevRel担当、ゼロからの奮闘記~ @a...【非エンジニアが 「明日からDevRelやってよ」って 突然言われて1年半やってきたこと  ~teratailのDevRel担当、ゼロからの奮闘記~ @a...
【非エンジニアが 「明日からDevRelやってよ」って 突然言われて1年半やってきたこと ~teratailのDevRel担当、ゼロからの奮闘記~ @a...
Yusaku Kinoshita
 
Cache obliviousの話
Cache obliviousの話Cache obliviousの話
Cache obliviousの話
Kumazaki Hiroki
 
Solrを使ったレシピ検索のプロトタイピング
Solrを使ったレシピ検索のプロトタイピングSolrを使ったレシピ検索のプロトタイピング
Solrを使ったレシピ検索のプロトタイピング
genta kaneyama
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
MITSUNARI Shigeo
 
Streaming SQL
Streaming SQLStreaming SQL
Streaming SQL
Julian Hyde
 
Prometheus meets Consul -- Consul Casual Talks
Prometheus meets Consul -- Consul Casual TalksPrometheus meets Consul -- Consul Casual Talks
Prometheus meets Consul -- Consul Casual Talks
Satoshi Suzuki
 
Windows Server+Photon Server環境でも Fluentd+Elasticsearch+Kibanaを活用して 各種情報を可視化する...
Windows Server+Photon Server環境でもFluentd+Elasticsearch+Kibanaを活用して各種情報を可視化する...Windows Server+Photon Server環境でもFluentd+Elasticsearch+Kibanaを活用して各種情報を可視化する...
Windows Server+Photon Server環境でも Fluentd+Elasticsearch+Kibanaを活用して 各種情報を可視化する...
GMO GlobalSign Holdings K.K.
 
JAWS-UGアーキテクチャ専門支部 ServerlessConfレポート
JAWS-UGアーキテクチャ専門支部 ServerlessConfレポートJAWS-UGアーキテクチャ専門支部 ServerlessConfレポート
JAWS-UGアーキテクチャ専門支部 ServerlessConfレポート
真吾 吉田
 
Nmap 9つの真実
Nmap 9つの真実Nmap 9つの真実
Nmap 9つの真実
abend_cve_9999_0001
 
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
Toshiyuki Hirata
 
Solving anything in VCL
Solving anything in VCLSolving anything in VCL
Solving anything in VCL
Fastly
 
Security days 2016「セキュリティ対策の転換点」
Security days 2016「セキュリティ対策の転換点」Security days 2016「セキュリティ対策の転換点」
Security days 2016「セキュリティ対策の転換点」
UEHARA, Tetsutaro
 
Introduction to Vim 8.0
Introduction to Vim 8.0Introduction to Vim 8.0
Introduction to Vim 8.0
k-takata
 
IkaLog and Deep Learning (20161122 GDLCjp)
IkaLog and Deep Learning (20161122 GDLCjp)IkaLog and Deep Learning (20161122 GDLCjp)
IkaLog and Deep Learning (20161122 GDLCjp)
Takeshi HASEGAWA
 
Androidテスティング実践 基礎編
Androidテスティング実践 基礎編Androidテスティング実践 基礎編
Androidテスティング実践 基礎編
株式会社 NTTテクノクロス
 

Viewers also liked (20)

データベース14 - データベース構造とインデックス
データベース14 - データベース構造とインデックスデータベース14 - データベース構造とインデックス
データベース14 - データベース構造とインデックス
 
情報推薦システム入門:講義スライド
情報推薦システム入門:講義スライド情報推薦システム入門:講義スライド
情報推薦システム入門:講義スライド
 
データベース02 - SQL概要
データベース02 - SQL概要データベース02 - SQL概要
データベース02 - SQL概要
 
データベース01 - データベースとは
データベース01 - データベースとはデータベース01 - データベースとは
データベース01 - データベースとは
 
Rust (Ginzarb 20161114)
Rust (Ginzarb 20161114)Rust (Ginzarb 20161114)
Rust (Ginzarb 20161114)
 
【非エンジニアが 「明日からDevRelやってよ」って 突然言われて1年半やってきたこと ~teratailのDevRel担当、ゼロからの奮闘記~ @a...
【非エンジニアが 「明日からDevRelやってよ」って 突然言われて1年半やってきたこと  ~teratailのDevRel担当、ゼロからの奮闘記~ @a...【非エンジニアが 「明日からDevRelやってよ」って 突然言われて1年半やってきたこと  ~teratailのDevRel担当、ゼロからの奮闘記~ @a...
【非エンジニアが 「明日からDevRelやってよ」って 突然言われて1年半やってきたこと ~teratailのDevRel担当、ゼロからの奮闘記~ @a...
 
Cache obliviousの話
Cache obliviousの話Cache obliviousの話
Cache obliviousの話
 
Solrを使ったレシピ検索のプロトタイピング
Solrを使ったレシピ検索のプロトタイピングSolrを使ったレシピ検索のプロトタイピング
Solrを使ったレシピ検索のプロトタイピング
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
 
Streaming SQL
Streaming SQLStreaming SQL
Streaming SQL
 
Prometheus meets Consul -- Consul Casual Talks
Prometheus meets Consul -- Consul Casual TalksPrometheus meets Consul -- Consul Casual Talks
Prometheus meets Consul -- Consul Casual Talks
 
Windows Server+Photon Server環境でも Fluentd+Elasticsearch+Kibanaを活用して 各種情報を可視化する...
Windows Server+Photon Server環境でもFluentd+Elasticsearch+Kibanaを活用して各種情報を可視化する...Windows Server+Photon Server環境でもFluentd+Elasticsearch+Kibanaを活用して各種情報を可視化する...
Windows Server+Photon Server環境でも Fluentd+Elasticsearch+Kibanaを活用して 各種情報を可視化する...
 
JAWS-UGアーキテクチャ専門支部 ServerlessConfレポート
JAWS-UGアーキテクチャ専門支部 ServerlessConfレポートJAWS-UGアーキテクチャ専門支部 ServerlessConfレポート
JAWS-UGアーキテクチャ専門支部 ServerlessConfレポート
 
Nmap 9つの真実
Nmap 9つの真実Nmap 9つの真実
Nmap 9つの真実
 
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
 
Solving anything in VCL
Solving anything in VCLSolving anything in VCL
Solving anything in VCL
 
Security days 2016「セキュリティ対策の転換点」
Security days 2016「セキュリティ対策の転換点」Security days 2016「セキュリティ対策の転換点」
Security days 2016「セキュリティ対策の転換点」
 
Introduction to Vim 8.0
Introduction to Vim 8.0Introduction to Vim 8.0
Introduction to Vim 8.0
 
IkaLog and Deep Learning (20161122 GDLCjp)
IkaLog and Deep Learning (20161122 GDLCjp)IkaLog and Deep Learning (20161122 GDLCjp)
IkaLog and Deep Learning (20161122 GDLCjp)
 
Androidテスティング実践 基礎編
Androidテスティング実践 基礎編Androidテスティング実践 基礎編
Androidテスティング実践 基礎編
 

More from Kenta Oku

データベース11 - データベースとプログラム
データベース11 - データベースとプログラムデータベース11 - データベースとプログラム
データベース11 - データベースとプログラム
Kenta Oku
 
データベース08 - 関係データモデルと関係代数
データベース08 - 関係データモデルと関係代数データベース08 - 関係データモデルと関係代数
データベース08 - 関係データモデルと関係代数
Kenta Oku
 
データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)
データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)
データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)
Kenta Oku
 
データベース06 - SQL(VIEW, ALTER, GRANTなど)
データベース06 - SQL(VIEW, ALTER, GRANTなど)データベース06 - SQL(VIEW, ALTER, GRANTなど)
データベース06 - SQL(VIEW, ALTER, GRANTなど)
Kenta Oku
 
データベース05 - SQL(SELECT:結合,副問合せ)
データベース05 - SQL(SELECT:結合,副問合せ)データベース05 - SQL(SELECT:結合,副問合せ)
データベース05 - SQL(SELECT:結合,副問合せ)
Kenta Oku
 
データベース04 - SQL(SELECT:基本)
データベース04 - SQL(SELECT:基本)データベース04 - SQL(SELECT:基本)
データベース04 - SQL(SELECT:基本)
Kenta Oku
 

More from Kenta Oku (6)

データベース11 - データベースとプログラム
データベース11 - データベースとプログラムデータベース11 - データベースとプログラム
データベース11 - データベースとプログラム
 
データベース08 - 関係データモデルと関係代数
データベース08 - 関係データモデルと関係代数データベース08 - 関係データモデルと関係代数
データベース08 - 関係データモデルと関係代数
 
データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)
データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)
データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)
 
データベース06 - SQL(VIEW, ALTER, GRANTなど)
データベース06 - SQL(VIEW, ALTER, GRANTなど)データベース06 - SQL(VIEW, ALTER, GRANTなど)
データベース06 - SQL(VIEW, ALTER, GRANTなど)
 
データベース05 - SQL(SELECT:結合,副問合せ)
データベース05 - SQL(SELECT:結合,副問合せ)データベース05 - SQL(SELECT:結合,副問合せ)
データベース05 - SQL(SELECT:結合,副問合せ)
 
データベース04 - SQL(SELECT:基本)
データベース04 - SQL(SELECT:基本)データベース04 - SQL(SELECT:基本)
データベース04 - SQL(SELECT:基本)
 

データベース12 - トランザクションと同時実行制御