Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
OS
Uploaded by
Oda Shinsuke
PPTX, PDF
4,369 views
SQL Server のロック概要
2018/10/13 第9回 関西DB勉強会 SQL Server のロック概要~初心者向け~ https://kansaidbstudy.connpass.com/event/95803/
Technology
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Downloaded 16 times
1
/ 21
2
/ 21
3
/ 21
4
/ 21
5
/ 21
6
/ 21
7
/ 21
8
/ 21
9
/ 21
10
/ 21
11
/ 21
12
/ 21
13
/ 21
14
/ 21
15
/ 21
16
/ 21
17
/ 21
18
/ 21
19
/ 21
20
/ 21
21
/ 21
More Related Content
PPTX
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PPTX
ゲームエンジニアのためのデータベース設計
by
sairoutine
PPTX
分散システムについて語らせてくれ
by
Kumazaki Hiroki
PDF
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
by
NTT DATA Technology & Innovation
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
by
NTT DATA Technology & Innovation
PDF
PostgreSQL: XID周回問題に潜む別の問題
by
NTT DATA OSS Professional Services
PPTX
Sql server のバックアップとリストアの基礎
by
Masayuki Ozawa
PDF
ソーシャルゲーム案件におけるDB分割のPHP実装
by
infinite_loop
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
ゲームエンジニアのためのデータベース設計
by
sairoutine
分散システムについて語らせてくれ
by
Kumazaki Hiroki
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
by
NTT DATA Technology & Innovation
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
by
NTT DATA Technology & Innovation
PostgreSQL: XID周回問題に潜む別の問題
by
NTT DATA OSS Professional Services
Sql server のバックアップとリストアの基礎
by
Masayuki Ozawa
ソーシャルゲーム案件におけるDB分割のPHP実装
by
infinite_loop
What's hot
PDF
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
PDF
PostgreSQLの運用・監視にまつわるエトセトラ
by
NTT DATA OSS Professional Services
PDF
PostgreSQL のイケてるテクニック7選
by
Tomoya Kawanishi
PDF
OAuth 2.0のResource Serverの作り方
by
Hitachi, Ltd. OSS Solution Center.
PPTX
初心者向けMongoDBのキホン!
by
Tetsutaro Watanabe
PDF
Google Cloud で実践する SRE
by
Google Cloud Platform - Japan
PDF
PostgreSQLアンチパターン
by
Soudai Sone
PPTX
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
by
NTT DATA Technology & Innovation
PPTX
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
by
NTT DATA Technology & Innovation
PDF
フロー効率性とリソース効率性について #xpjug
by
Itsuki Kuroda
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
by
Masahiko Sawada
PDF
テストとリファクタリングに関する深い方法論 #wewlc_jp
by
kyon mm
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
PDF
PostgreSQLバックアップの基本
by
Uptime Technologies LLC (JP)
PDF
シリコンバレーの「何が」凄いのか
by
Atsushi Nakada
PDF
Serverless時代のJavaについて
by
Amazon Web Services Japan
PDF
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
PDF
45分で理解する SQL Serverでできることできないこと
by
Insight Technology, Inc.
PDF
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
by
NTT DATA Technology & Innovation
PDF
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
by
Google Cloud Platform - Japan
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
PostgreSQLの運用・監視にまつわるエトセトラ
by
NTT DATA OSS Professional Services
PostgreSQL のイケてるテクニック7選
by
Tomoya Kawanishi
OAuth 2.0のResource Serverの作り方
by
Hitachi, Ltd. OSS Solution Center.
初心者向けMongoDBのキホン!
by
Tetsutaro Watanabe
Google Cloud で実践する SRE
by
Google Cloud Platform - Japan
PostgreSQLアンチパターン
by
Soudai Sone
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
by
NTT DATA Technology & Innovation
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
by
NTT DATA Technology & Innovation
フロー効率性とリソース効率性について #xpjug
by
Itsuki Kuroda
アーキテクチャから理解するPostgreSQLのレプリケーション
by
Masahiko Sawada
テストとリファクタリングに関する深い方法論 #wewlc_jp
by
kyon mm
マイクロにしすぎた結果がこれだよ!
by
mosa siru
PostgreSQLバックアップの基本
by
Uptime Technologies LLC (JP)
シリコンバレーの「何が」凄いのか
by
Atsushi Nakada
Serverless時代のJavaについて
by
Amazon Web Services Japan
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
45分で理解する SQL Serverでできることできないこと
by
Insight Technology, Inc.
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
by
NTT DATA Technology & Innovation
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
by
Google Cloud Platform - Japan
More from Oda Shinsuke
PDF
SQL Server2022_PSPoptimization_pub.pdf
by
Oda Shinsuke
PDF
What's hyperscale
by
Oda Shinsuke
PDF
Dot net+sql server tips
by
Oda Shinsuke
PDF
Sql server 2019 ざっくり紹介
by
Oda Shinsuke
PDF
Spark on sql server?
by
Oda Shinsuke
PDF
Blazor 触ってみた
by
Oda Shinsuke
PDF
Linux + PHP でも SQL Server
by
Oda Shinsuke
PPTX
グラフデータベースの話し
by
Oda Shinsuke
PPTX
Sql server 2017 新機能のご紹介
by
Oda Shinsuke
PPTX
Sql server 2017 からはじめる graph データベース
by
Oda Shinsuke
PPTX
Transaction scopeまだダメ
by
Oda Shinsuke
PPTX
Sql serverと他dbの違いを押さえよう!
by
Oda Shinsuke
PPTX
2016年を振り返って
by
Oda Shinsuke
PPTX
Sql world とは
by
Oda Shinsuke
PPTX
開発者の方向けの Sql server(db) t sql 振り返り
by
Oda Shinsuke
PPTX
Sql world とは
by
Oda Shinsuke
PPTX
Ms build 触ってみよう
by
Oda Shinsuke
PPTX
Sql server2014復習とsqlserver2016の紹介
by
Oda Shinsuke
PPTX
Sql server sql database 最新機能紹介
by
Oda Shinsuke
PPTX
Selenium 触ってみよう
by
Oda Shinsuke
SQL Server2022_PSPoptimization_pub.pdf
by
Oda Shinsuke
What's hyperscale
by
Oda Shinsuke
Dot net+sql server tips
by
Oda Shinsuke
Sql server 2019 ざっくり紹介
by
Oda Shinsuke
Spark on sql server?
by
Oda Shinsuke
Blazor 触ってみた
by
Oda Shinsuke
Linux + PHP でも SQL Server
by
Oda Shinsuke
グラフデータベースの話し
by
Oda Shinsuke
Sql server 2017 新機能のご紹介
by
Oda Shinsuke
Sql server 2017 からはじめる graph データベース
by
Oda Shinsuke
Transaction scopeまだダメ
by
Oda Shinsuke
Sql serverと他dbの違いを押さえよう!
by
Oda Shinsuke
2016年を振り返って
by
Oda Shinsuke
Sql world とは
by
Oda Shinsuke
開発者の方向けの Sql server(db) t sql 振り返り
by
Oda Shinsuke
Sql world とは
by
Oda Shinsuke
Ms build 触ってみよう
by
Oda Shinsuke
Sql server2014復習とsqlserver2016の紹介
by
Oda Shinsuke
Sql server sql database 最新機能紹介
by
Oda Shinsuke
Selenium 触ってみよう
by
Oda Shinsuke
SQL Server のロック概要
1.
SQL Server のロック概要 ~初心者向け~ 第9回
関西DB勉強会 2018/10/13 SQLWorld お だ
2.
自己紹介 織田 信亮(おだ しんすけ) 大阪で開発者しています SQLWorld
の代表です http://odashinsuke.hatenablog.com/ Twitter:@shinsukeoda
3.
今日の目標 SQL Server 初心者の方でも、ロックが何 か分かる チョットデキル デッドロックが発生する理由が何となく 分かる
4.
ロック is 何? 共有資源をみんなで「行儀よく」使うた めに、今自分が使ってるから使っちゃダ メ―っていうやつ ダメ。ゼッタイ。
5.
行儀よく? ロックが無い場合… 更新の競合によるダブルブッキング 在庫を超えた引き当て update 在庫 set 数量
- @出荷数 where 商品 = @商品 and 数量 >= @出荷数 同時に更新が走ると 在庫.数量 がマイナスになる可能性がある!!
6.
行儀悪い? ダーティリード 他のトランザクションの未コミットのデー タが見える ロールバックされると、見えた値は正しくない値 トランザクション内で同じデータを複数回別の値 に更新する場合は、コミットされた最終の値とは 異なる値が見える可能性も…
7.
他にも… ノンリピータブルリード(ファジーリード) 同一トランザクション内で同じ問合せを複 数回した際に、他のトランザクションでコ ミットされた UPDATE/DELETE により結果 が異なる ファントムリード 同一トランザクション内で同じ問合せを複 数回した際に、他のトランザクションでコ ミットされた
INSERT により結果が異なる
8.
行儀が悪い = ダメ? 行儀よくするには、パフォーマンスに影 響がでる 同時実行性/CPU使用率等 ケースバイケースで 1回しか読まないのに
ノンリピータブル リード は不要 一覧画面だったらダーティリードでも問題 無い場合もあるのでは?
9.
ロックの粒度 ざっくりと 行(RID / KEY) ページ テーブル
10.
ロックモード 共有ロック(S) 検索のロック 更新ロック(U) 更新予定のロック 排他ロック(X) 更新ロック
11.
デッドロック 複数のトランザクションが互いに必要な リソースをロックしあって処理が継続不 能になること サイクルデッドロック 変換デッドロック インデックス間デッドロック
12.
サイクルデッドロック 更新順序が違う
13.
デッドロックグラフ
14.
変換デッドロック 同じ行を検索したあとに更新する
15.
デッドロックグラフ
16.
インデックス間デッドロック 更新と検索なのにデッドロック! CIを条件にNCIを更新 クラスター化インデックスと非クラスター化イン デックスのXロック NCIを条件にCIを検索する クラスター化インデックスと非クラスター化イン デックスのSロック
17.
インデックス間デッドロック – 例 •
CI(クラスター化インデックス)のキー列=PK列 • NCI(非クラスター化インデックス)キー列=NAME列
18.
デッドロックグラフ
19.
トランザクション分離レベル READ UNCOMMITTED READ COMMITED READ
COMMITTED SNAPSHOT OPTION REPEATABLE READ SNAPSHOT SERIALIZABLE
21.
参考資料 SQL Server Transaction
Locking and Row Versioning Guide https://docs.microsoft.com/ja-jp/sql/2014-toc/sql-server-transaction- locking-and-row-versioning-guide?view=sql-server-2014 デッドロックのサンプルクエリ https://blog.engineer-memo.com/2013/07/15/デッドロックのサンプルクエリ / 【SQL server】デッドロックの調査方法 http://memorandom-nishi.hatenablog.jp/entry/2016/11/14/024856 Trigger carsing a deadlock? https://stackoverflow.com/questions/6282501/trigger-causing-a-deadlock
Editor's Notes
#13
更新の順序を揃えることで回避可能
#15
Sロックではなく、Uロックにすることで回避可能
#17
クラスター化インデックスを条件に非クラスター化インデックスのキー列を更新と、非クラスター化インデックスを条件にクラスター化インデックスの列を検索
#18
Sロックを取らない方法で検索する
#20
READ UNCOMMITTED:物理的に破損したデータを読み取らないことのみが保証された分離レベル。ダーティリードも何のその READ COMMITTED:COMMIT済みのデータを読み取る既定の分離レベル。書き込みロックはトランザクション終了まで、読取りロックはSELECT操作が終わるまで REPEATABLE READ:書き込み/読込ロックをトランザクションの終わりまで保持する。範囲ロックは取らないので、ファントムリードは発生する SERIALIZABLE:一番高い分離レベル。読取り/書き込みロックをトランザクションの終わりまで保持し、範囲指定付きの WHERE 句を SELECT で使うとファントムリードを防ぐための範囲ロックも取得する READ COMMITTED SNAPSHOT:READ COMMITTED と同じだが、Sロックを取らずに書き込みを待たない。行のバージョン管理を使用して、「クエリ開始時」のデータを参照する。REPEATABLE READ や HOLD LOCK 等のロックが必要な場合は、ロックを取る SNAPSHOT:トランザクション開始時点のデータを参照 両方とも テーブルの SCH-S(スキーマ共有ロック) は取るので、スキーマの変更はロック待ちになる
Download