SlideShare a Scribd company logo
DBA から開発者への情報提供
Masayuki Ozawa (@Masayuki_Ozawa)
はじめに
2016/2/20Tokyo ComCamp 2016 powered by MVPs2
 本セッションでは、SQL Database を使用して、いくつかのデモをお
見せします。
 デモで実施する、特定の状態になったとき、
 どのような情報をとれば、問題を解決する足掛かりとなる情報を取得で
きるかが判断できる
 普段の運用でこれらの状況を解決するための情報が、取得できているか
 を、考えてみてください。
 不意に質問が飛びますので、ご協力をお願いします。
 私がお見せする方法以外にも様々な方法がありますので、違った見方の
意見は大歓迎です。
自己紹介
2016/2/20Tokyo ComCamp 2016 powered by MVPs3
 フリーランスのエンジニアとして、SQL Server の技術支援を主に従事
 SQL Server でご協力できることがありましたらお声がけいただけると幸いです
 「ムッシュ 金麦」で検索すると、足跡がいろいろ出てきます
 Microsoft MVP for Data Platform (July 2011 – June 2016)
 SE の雑記 (ブログ): http://blog.engineer-memo.com
 Twitter : @Masayuki_Ozawa
 Facebook : masayuki.ozawa
 GitHub : https://github.com/MasayukiOzawa
DBA から開発者への情報提供
2016/2/20Tokyo ComCamp 2016 powered by MVPs4
処理が遅い
2016/2/20Tokyo ComCamp 2016 powered by MVPs5
 様々な原因
 アプリケーションの問題?
 製品の根本的な問題?
 データベースの問題?
 ハードウェアリソースの問題?
 ネットワークの問題?
 問題発生時には誰が調べる?
 プログラム / 製品の問題は開発者?
 製品の問題 / データベースの問題は保守担当者?
 ハードウエア / ネットワーク問題は運用担当者?
問題の解決に向けて各担当が協力
 みんなで幸せになろうよ
DB 管理者観点で取得できる情報の一例
2016/2/20Tokyo ComCamp 2016 powered by MVPs6
 実行中の情報
 クエリ
 ロック
 キャッシュ (非永続化された情報)
 キャッシュされたクエリ / データのキャッシュサイズ / インデックス使用状況
 クエリ実行情報 (永続化された情報)
 過去に実行されたクエリ / クエリの実行プラン
 リソース使用状況
 CPU / メモリ / ディスク I/O
 複数のサーバーを管理している場合は、一箇所から見れる方法を検討
環境により取得できる情報の制約もある
2016/2/20Tokyo ComCamp 2016 powered by MVPs7
 IaaS
 OS にログインできるので、ログインして各種状態/情報を確認
 エージェントをインストールして、外部に情報を連携
 マネージドサービス
 OS にログインすることはできないため、限定された情報の取得
 提供されている方法の範囲で情報を取得
 API 経由
 SQL 経由
→ SQL Database の場合は、SQL 経由でほぼ取得できる
SQL Database を例とした情報の取得
2016/2/20Tokyo ComCamp 2016 powered by MVPs8
これからいくつかのケースで
取得できる情報をお見せします
このような情報を共有することで
みんなで幸せになれるといいな
ケース #1
- 実行が完了しないクエリ -
2016/2/20Tokyo ComCamp 2016 powered by MVPs9
Demo
現象を発生
2016/2/20Tokyo ComCamp 2016 powered by MVPs10
どの情報を取得すればよい?
2016/2/20Tokyo ComCamp 2016 powered by MVPs11
 SQL Server における一般的な方法
 実行されたクエリ
 プロファイラー
 実行中のクエリ
 利用状況モニター
 最後に実行が完了したクエリ
 キャッシュ (DMV)
今回のケースは「実行"中"」のクエリの情報を取得
2016/2/20Tokyo ComCamp 2016 powered by MVPs12
 どのようなクエリが実行されているかの情報を取得
 sys.dm_exec_requests (Transact-SQL)
https://msdn.microsoft.com/ja-jp/library/ms177648(v=sql.120).aspx
 経過時間
 待機理由
 ブロッキング (ロック競合) セッション
 SQL Database v12 は SQL Server 2012 SP3 / SQL Server 2016 CTP 3 相当の情報を取得す
ることが可能
 Core SQL engine upgraded to SQL 2016
 「PASS Summit 2015 : AD-214-M Azure SQL Database Investments and Roadmap」 より
 Improved memory grant diagnostics when you use DMV in SQL Server 2012
https://support.microsoft.com/en-us/kb/3107398
 SQL Database では利用状況モニターが使えないのでクエリでの確認を検討
 sp_who / sp_who2 の利用
 SQL Server 2016 の SSMS からは「ライブクエリ統計」が取得可能
Demo
実行中のクエリの情報取得
2016/2/20Tokyo ComCamp 2016 powered by MVPs13
ロック競合
2016/2/20Tokyo ComCamp 2016 powered by MVPs14
 リソースネックではない論理的な待ち
 CPU / ディスク / メモリを増強しても、待ちの解消に対して効果がない可能性が高い
 一般的にはコマンドタイムアウトの時間で、クエリの実行がキャンセルされ
ることで、ロック競合が自動的に解消されるが、ツールによっては無制限の
可能性も
 RCSI / スナップショット分離レベル / NOLOCK / READPASTによる読み取り競合の解消
 どのデータを読み取ればよいかの要件に依存
 SQL Database は RCSI / スナップショット分離レベルはデフォルト有効
 SSMS やサードパーティーツール (ODBC 経由でアクセスする汎用 RDBMS の
管理ツール) 等の操作では、タイムアウトが発生せず、ロックが取得された
ままの状態となる可能性がある
 長時間のトランザクションの実行 / 編集画面を開いたままにする
参考) デッドロックの情報
2016/2/20Tokyo ComCamp 2016 powered by MVPs15
 以前の SQL Database では、sys.event_log から取得できていたが、SQL
Database v12 では、取得できなくっている。
 sys.fn_xe_telemetry_blob_target_read_file から取得できる
 Checking deadlocks in Azure SQL V12
https://social.msdn.microsoft.com/Forums/en-US/5426573e-29f6-4403-
a9d9-40c9ac56ba0e/checking-deadlocks-in-azure-sql-
v12?forum=ssdsgetstarted
Demo
ロック競合の取得
2016/2/20Tokyo ComCamp 2016 powered by MVPs16
全体の傾向として何起因の待ちが多い?
2016/2/20Tokyo ComCamp 2016 powered by MVPs17
 ロック競合は「待ち事象」の一つ
 待ち事象には様々な理由がある
 ディスクからデータを読み込む待ち
 CPU の使用権を確保するための待ち
 ネットワーク転送の待ち
 DMV から取得可能
 sys.dm_db_wait_stats (Windows Azure SQL データベース)
https://msdn.microsoft.com/ja-jp/library/dn269834(v=sql.120).aspx
 待ち事象は「処理が完了したタイミング」で集計される
Demo
待ち事象の取得
2016/2/20Tokyo ComCamp 2016 powered by MVPs18
ケース 2
- クエリ実行に失敗 -
2016/2/20Tokyo ComCamp 2016 powered by MVPs19
Demo
現象を発生
2016/2/20Tokyo ComCamp 2016 powered by MVPs20
DTU (Database Throughput Unit)
2016/2/20Tokyo ComCamp 2016 powered by MVPs21
 SQL Database の性能はパフォーマンスレベル (価格帯)に応じて変わる
 使用できるリソースの上限 / リストア粒度が変わってくる
 CPU / メモリ / 接続数 / ディスク性能 / In-Memory OLTP ストレージ (Premium)
 Basic / Standard と Premium では基本ディスク性能が異なる
SQL Database options and performance: Understand what's available in each service tier より抜粋
https://azure.microsoft.com/en-us/documentation/articles/sql-database-service-tiers/
リソースの使用状況
2016/2/20Tokyo ComCamp 2016 powered by MVPs22
 sys.resource_stats
 サーバーレベルで、5 分単位 / 約 14 日間保持
 https://msdn.microsoft.com/en-us/library/dn269979.aspx
 SKU / ストレージ / CPU / データ I/O / ログ書き込み
 去年末ぐらいに増えました
 ワーカー / セッション / DTU リミット
 sys.dm_db_resource_stats
 データベースレベルで、15 秒間隔 / 約 1 時間保持
 CPU / データ I/O/ ログ書き込み / メモリ使用量
 去年末ぐらいに増えました
 In-Memory OLTP ストレージ / ワーカー / セッション / DTU リミット
 sys.event_log
 接続のトラブルシューティング / スロットル等のイベント
 https://msdn.microsoft.com/en-us/library/dn270018.aspx
 sys.database_connection_stats
 接続についての概要情報
 https://msdn.microsoft.com/en-us/library/dn269986.aspx
Demo
リソースの使用状況の取得
2016/2/20Tokyo ComCamp 2016 powered by MVPs23
ケース 3
- 実行されたクエリ -
2016/2/20Tokyo ComCamp 2016 powered by MVPs24
Demo
現象を発生
2016/2/20Tokyo ComCamp 2016 powered by MVPs25
クエリストア
2016/2/20Tokyo ComCamp 2016 powered by MVPs26
 クエリコンパイル時の実行プランと実行統計情報を自動的に取得し保
存する
 特定時点で使用されている実行プランを確認することができる。
SQL
コンパイル
実行
プランストア
実行統計
クエリストア
スキーマ
クエリストア
コンパイル
メッセージ
実行
メッセージ
非同期
書き込み
キャッシュとクエリストアの違い
2016/2/20Tokyo ComCamp 2016 powered by MVPs27
 キャッシュ
 メモリ上に保存されている最新のクエリ情報
 再起動をするとキャッシュがクリアされる
 プランキャッシュが枯渇してくると、クエリの情報がキャッシュアウトされる
 最後の実行プランの情報がキャッシュされている
 クエリストア
 データベース内の保存されているクエリ実行情報
 データベース内のテーブルに永続化された情報を保持
 クエリストアで使用するサイズと保存する期間を設定
 特定のクエリの実行プランの変遷を確認することができる
クエリストアの確認方法
2016/2/20Tokyo ComCamp 2016 powered by MVPs28
 Query Performance Insight
 内部的にはクエリストアの情報を使用している
 ポータルから確認することができる機能
 SQL Server Management Studio
 SQL Server 2016 の Management Studio で確認可能
 クエリストアの情報を GUI で確認可能
 クエリから確認
 Query Store Catalog Views (Transact-SQL)
https://msdn.microsoft.com/en-us/library/dn818149.aspx
拡張イベント (プレビュー)
2016/2/20Tokyo ComCamp 2016 powered by MVPs29
 拡張イベントを使用してクエリ実行のトレースを取得
 SQL Server プロファイラーの代わりとしての利用も検討
 Azure ストレージにログファイルを出力可能
 attention
 blocked_process_report
 database_xml_deadlock_report
 error_reported
 exchange_spill
 execution_warning
 existing_connection
 full_text_crawl_started
 fulltextlog_written
 hash_spill_details
 hash_warning
 lock_acquired
 lock_deadlock
 lock_deadlock_chain
 login
 logout
 missing_column_statistics
 missing_join_predicate
 module_end
 object_altered
 object_created
 object_deleted
 optimizer_timeout
 plan_affecting_convert
 progress_report_online_index_opera
tion
 query_execution_dynamic_push_do
wn_statistics
 query_optimizer_memory_gateway
 query_post_compilation_showplan
 query_post_execution_showplan
 query_pre_execution_showplan
 rpc_completed
 rpc_starting
 session_context_statistics
 sort_warning
 sp_statement_completed
 sp_statement_starting
 sql_batch_completed
 sql_batch_starting
 sql_statement_completed
 sql_statement_recompile
 sql_statement_starting
 sql_transaction
 unmatched_filtered_indexes
 user_event
 wait_info
 wait_info_external
 worker_wait_stats
 xml_deadlock_report
そのほかに
2016/2/20Tokyo ComCamp 2016 powered by MVPs30
 欠落していると想定されるインデックス情報の取得
 インデックスアドバイザー
 1 週間程度のアクティビティから、効果があると思われるインデックスをアドバイス
 動的管理ビュー (キャッシュ)
 実行プランでインデックスが不足しているとアドバイスされたものを確認
 sys.dm_db_missing_index_details (Transact-SQL)
https://msdn.microsoft.com/ja-jp/library/ms345434(v=sql.120).aspx
 sys.dm_db_missing_index_groups (Transact-SQL)
https://msdn.microsoft.com/ja-jp/library/ms345407(v=sql.120).aspx
 sys.dm_db_missing_index_group_stats (Transact-SQL)
https://msdn.microsoft.com/ja-jp/library/ms345421(v=sql.120).aspx
Demo
実行されたクエリの取得
2016/2/20Tokyo ComCamp 2016 powered by MVPs31
まとめ
2016/2/20Tokyo ComCamp 2016 powered by MVPs32
 DB について、以下を意識した情報がみんなで共有できると幸せになれるかも
 情報が格納される場所
 キャッシュ / 外部データ
 情報を取得すればよいタイミング
 実行中 / 実行後
 情報取得のタクト
 最新 / 集計データ / 履歴
 情報の確認方法
 GUI / クエリ実行 / 通知

More Related Content

What's hot

db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解するdb tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
Masayuki Ozawa
 
A25 sql server data page structure deep dive
A25 sql server data page structure deep diveA25 sql server data page structure deep dive
A25 sql server data page structure deep diveMasayuki Ozawa
 
Sql server 構築 運用 tips
Sql server 構築 運用 tipsSql server 構築 運用 tips
Sql server 構築 運用 tipsMasayuki Ozawa
 
SQL Server 2014 データベースエンジン新機能
SQL Server 2014 データベースエンジン新機能SQL Server 2014 データベースエンジン新機能
SQL Server 2014 データベースエンジン新機能Masayuki Ozawa
 
DBTS2015_B35_SQLServer2016
DBTS2015_B35_SQLServer2016DBTS2015_B35_SQLServer2016
DBTS2015_B35_SQLServer2016
Tsuyoshi Kitagawa
 
Sql server 運用 101
Sql server 運用 101Sql server 運用 101
Sql server 運用 101
Masayuki Ozawa
 
Sql server 2014 新機能の紹介 改訂版
Sql server 2014 新機能の紹介 改訂版Sql server 2014 新機能の紹介 改訂版
Sql server 2014 新機能の紹介 改訂版
Oda Shinsuke
 
待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイントMasayuki Ozawa
 
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Masayuki Ozawa
 
Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介
Oda Shinsuke
 
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアルCOD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアルMasayuki Ozawa
 
Always on 可用性グループ 構築時のポイント
Always on 可用性グループ 構築時のポイントAlways on 可用性グループ 構築時のポイント
Always on 可用性グループ 構築時のポイントMasayuki Ozawa
 
Data consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスData consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスMasayuki Ozawa
 
オンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみたオンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみたMasayuki Ozawa
 
Sql database 基本構成と直近で追加されていた機能の紹介
Sql database 基本構成と直近で追加されていた機能の紹介Sql database 基本構成と直近で追加されていた機能の紹介
Sql database 基本構成と直近で追加されていた機能の紹介Masayuki Ozawa
 
Sql server浅く広く
Sql server浅く広くSql server浅く広く
Sql server浅く広く
okumar savurou
 
SQL Server 2014 In Memory OLTP Overview
SQL Server 2014 In Memory OLTP OverviewSQL Server 2014 In Memory OLTP Overview
SQL Server 2014 In Memory OLTP OverviewMasayuki Ozawa
 
Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎Masayuki Ozawa
 
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチSql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチMasayuki Ozawa
 
Sql database managed instance overview and internals
Sql database managed instance overview and internalsSql database managed instance overview and internals
Sql database managed instance overview and internals
Masayuki Ozawa
 

What's hot (20)

db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解するdb tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
 
A25 sql server data page structure deep dive
A25 sql server data page structure deep diveA25 sql server data page structure deep dive
A25 sql server data page structure deep dive
 
Sql server 構築 運用 tips
Sql server 構築 運用 tipsSql server 構築 運用 tips
Sql server 構築 運用 tips
 
SQL Server 2014 データベースエンジン新機能
SQL Server 2014 データベースエンジン新機能SQL Server 2014 データベースエンジン新機能
SQL Server 2014 データベースエンジン新機能
 
DBTS2015_B35_SQLServer2016
DBTS2015_B35_SQLServer2016DBTS2015_B35_SQLServer2016
DBTS2015_B35_SQLServer2016
 
Sql server 運用 101
Sql server 運用 101Sql server 運用 101
Sql server 運用 101
 
Sql server 2014 新機能の紹介 改訂版
Sql server 2014 新機能の紹介 改訂版Sql server 2014 新機能の紹介 改訂版
Sql server 2014 新機能の紹介 改訂版
 
待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント
 
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
 
Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介
 
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアルCOD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
 
Always on 可用性グループ 構築時のポイント
Always on 可用性グループ 構築時のポイントAlways on 可用性グループ 構築時のポイント
Always on 可用性グループ 構築時のポイント
 
Data consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスData consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンス
 
オンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみたオンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみた
 
Sql database 基本構成と直近で追加されていた機能の紹介
Sql database 基本構成と直近で追加されていた機能の紹介Sql database 基本構成と直近で追加されていた機能の紹介
Sql database 基本構成と直近で追加されていた機能の紹介
 
Sql server浅く広く
Sql server浅く広くSql server浅く広く
Sql server浅く広く
 
SQL Server 2014 In Memory OLTP Overview
SQL Server 2014 In Memory OLTP OverviewSQL Server 2014 In Memory OLTP Overview
SQL Server 2014 In Memory OLTP Overview
 
Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎
 
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチSql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
 
Sql database managed instance overview and internals
Sql database managed instance overview and internalsSql database managed instance overview and internals
Sql database managed instance overview and internals
 

Viewers also liked

Sql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new featuresSql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new features
Masayuki Ozawa
 
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 152016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
歩 柴田
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
歩 柴田
 
固定化か?最新化か?オプティマイザ統計の運用をもう一度考える。 -JPOUG Tech Talk Night #6-
固定化か?最新化か?オプティマイザ統計の運用をもう一度考える。 -JPOUG Tech Talk Night #6-固定化か?最新化か?オプティマイザ統計の運用をもう一度考える。 -JPOUG Tech Talk Night #6-
固定化か?最新化か?オプティマイザ統計の運用をもう一度考える。 -JPOUG Tech Talk Night #6-
歩 柴田
 
SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料Masayuki Ozawa
 
SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料Masayuki Ozawa
 
ここからはじめる SQL Server の状態取得
ここからはじめる SQL Server の状態取得ここからはじめる SQL Server の状態取得
ここからはじめる SQL Server の状態取得Masayuki Ozawa
 
SQL Server replication overview (JP)
SQL Server replication overview (JP)SQL Server replication overview (JP)
SQL Server replication overview (JP)
elanlilac
 
AWS GDC アップデート - Amazon GameLift
AWS GDC アップデート - Amazon GameLiftAWS GDC アップデート - Amazon GameLift
AWS GDC アップデート - Amazon GameLift
Amazon Web Services Japan
 
SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能
SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能
SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能
Koichiro Sasaki
 
STelligence Savvius Thai Datasheet
STelligence Savvius Thai DatasheetSTelligence Savvius Thai Datasheet
STelligence Savvius Thai Datasheet
Aruj Thirawat
 
Global Knowledge Training Courses & Promotion 2015-Sep
Global Knowledge Training Courses & Promotion 2015-SepGlobal Knowledge Training Courses & Promotion 2015-Sep
Global Knowledge Training Courses & Promotion 2015-Sep
Aruj Thirawat
 
FRT Vol. 5 クラウド時代の企業アプリケーションとマーケティング
FRT Vol. 5 クラウド時代の企業アプリケーションとマーケティングFRT Vol. 5 クラウド時代の企業アプリケーションとマーケティング
FRT Vol. 5 クラウド時代の企業アプリケーションとマーケティング
Yasunari Goto (iChain. Inc.)
 
Trabalhando com o Moodle e a Comunidade
Trabalhando com o Moodle e a ComunidadeTrabalhando com o Moodle e a Comunidade
Trabalhando com o Moodle e a Comunidade
Daniel Neis
 
Caching Data For Performance
Caching Data For PerformanceCaching Data For Performance
Caching Data For Performance
Dave Ross
 
MoodleMoot Brasil 2011 - O Moodle na UFSC (Infraestrutura de TI)
MoodleMoot Brasil 2011 - O Moodle na UFSC (Infraestrutura de TI)MoodleMoot Brasil 2011 - O Moodle na UFSC (Infraestrutura de TI)
MoodleMoot Brasil 2011 - O Moodle na UFSC (Infraestrutura de TI)Daniel Neis
 
ThaiCert Phishing and Malicious Code Infographic 2015
ThaiCert Phishing and Malicious Code Infographic 2015ThaiCert Phishing and Malicious Code Infographic 2015
ThaiCert Phishing and Malicious Code Infographic 2015
Aruj Thirawat
 

Viewers also liked (17)

Sql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new featuresSql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new features
 
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 152016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
 
固定化か?最新化か?オプティマイザ統計の運用をもう一度考える。 -JPOUG Tech Talk Night #6-
固定化か?最新化か?オプティマイザ統計の運用をもう一度考える。 -JPOUG Tech Talk Night #6-固定化か?最新化か?オプティマイザ統計の運用をもう一度考える。 -JPOUG Tech Talk Night #6-
固定化か?最新化か?オプティマイザ統計の運用をもう一度考える。 -JPOUG Tech Talk Night #6-
 
SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料
 
SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料
 
ここからはじめる SQL Server の状態取得
ここからはじめる SQL Server の状態取得ここからはじめる SQL Server の状態取得
ここからはじめる SQL Server の状態取得
 
SQL Server replication overview (JP)
SQL Server replication overview (JP)SQL Server replication overview (JP)
SQL Server replication overview (JP)
 
AWS GDC アップデート - Amazon GameLift
AWS GDC アップデート - Amazon GameLiftAWS GDC アップデート - Amazon GameLift
AWS GDC アップデート - Amazon GameLift
 
SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能
SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能
SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能
 
STelligence Savvius Thai Datasheet
STelligence Savvius Thai DatasheetSTelligence Savvius Thai Datasheet
STelligence Savvius Thai Datasheet
 
Global Knowledge Training Courses & Promotion 2015-Sep
Global Knowledge Training Courses & Promotion 2015-SepGlobal Knowledge Training Courses & Promotion 2015-Sep
Global Knowledge Training Courses & Promotion 2015-Sep
 
FRT Vol. 5 クラウド時代の企業アプリケーションとマーケティング
FRT Vol. 5 クラウド時代の企業アプリケーションとマーケティングFRT Vol. 5 クラウド時代の企業アプリケーションとマーケティング
FRT Vol. 5 クラウド時代の企業アプリケーションとマーケティング
 
Trabalhando com o Moodle e a Comunidade
Trabalhando com o Moodle e a ComunidadeTrabalhando com o Moodle e a Comunidade
Trabalhando com o Moodle e a Comunidade
 
Caching Data For Performance
Caching Data For PerformanceCaching Data For Performance
Caching Data For Performance
 
MoodleMoot Brasil 2011 - O Moodle na UFSC (Infraestrutura de TI)
MoodleMoot Brasil 2011 - O Moodle na UFSC (Infraestrutura de TI)MoodleMoot Brasil 2011 - O Moodle na UFSC (Infraestrutura de TI)
MoodleMoot Brasil 2011 - O Moodle na UFSC (Infraestrutura de TI)
 
ThaiCert Phishing and Malicious Code Infographic 2015
ThaiCert Phishing and Malicious Code Infographic 2015ThaiCert Phishing and Malicious Code Infographic 2015
ThaiCert Phishing and Malicious Code Infographic 2015
 

Similar to DBA から開発者への情報提供

Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用Yukio Kumazawa
 
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawaInsight Technology, Inc.
 
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi InabaInsight Technology, Inc.
 
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたAwsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Sunao Tomita
 
Start SQL Server with Docker
Start SQL Server with DockerStart SQL Server with Docker
Start SQL Server with Docker
Oshitari_kochi
 
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~normalian
 
マニアックス5Sql azure
マニアックス5Sql azureマニアックス5Sql azure
マニアックス5Sql azure
貴仁 大和屋
 
DSC 再入門
DSC 再入門DSC 再入門
DSC 再入門
Kazuki Takai
 
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
OSSラボ株式会社
 
Mvc conf session_5_isami
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isami
Hiroshi Okunushi
 
エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識
Daiyu Hatakeyama
 
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
Suguru Ito
 
画像解析最前線!WatsonとTensorFlowを比較してみた
画像解析最前線!WatsonとTensorFlowを比較してみた画像解析最前線!WatsonとTensorFlowを比較してみた
画像解析最前線!WatsonとTensorFlowを比較してみた
softlayerjp
 
Windows エンジニア向け sql server on linux のためのスキルアップデート
Windows エンジニア向け sql server on linux のためのスキルアップデートWindows エンジニア向け sql server on linux のためのスキルアップデート
Windows エンジニア向け sql server on linux のためのスキルアップデート
Masayuki Ozawa
 
わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料
guest628c07
 
わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料
Shinichiro Isago
 
Windows Azure for PHP Developers
Windows Azure for PHP DevelopersWindows Azure for PHP Developers
Windows Azure for PHP Developersfumios
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
 
Monitoring あれこれ
Monitoring あれこれMonitoring あれこれ
Monitoring あれこれ
Norio Sashizaki
 
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
Naoki (Neo) SATO
 

Similar to DBA から開発者への情報提供 (20)

Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用Share pointを支えるsql server2014最新情報 tokyo_公開用
Share pointを支えるsql server2014最新情報 tokyo_公開用
 
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
 
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba
 
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたAwsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
 
Start SQL Server with Docker
Start SQL Server with DockerStart SQL Server with Docker
Start SQL Server with Docker
 
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
 
マニアックス5Sql azure
マニアックス5Sql azureマニアックス5Sql azure
マニアックス5Sql azure
 
DSC 再入門
DSC 再入門DSC 再入門
DSC 再入門
 
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
 
Mvc conf session_5_isami
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isami
 
エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識
 
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
 
画像解析最前線!WatsonとTensorFlowを比較してみた
画像解析最前線!WatsonとTensorFlowを比較してみた画像解析最前線!WatsonとTensorFlowを比較してみた
画像解析最前線!WatsonとTensorFlowを比較してみた
 
Windows エンジニア向け sql server on linux のためのスキルアップデート
Windows エンジニア向け sql server on linux のためのスキルアップデートWindows エンジニア向け sql server on linux のためのスキルアップデート
Windows エンジニア向け sql server on linux のためのスキルアップデート
 
わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料
 
わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料
 
Windows Azure for PHP Developers
Windows Azure for PHP DevelopersWindows Azure for PHP Developers
Windows Azure for PHP Developers
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
 
Monitoring あれこれ
Monitoring あれこれMonitoring あれこれ
Monitoring あれこれ
 
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
 

More from Masayuki Ozawa

Power apps formula cheat sheet
Power apps formula cheat sheetPower apps formula cheat sheet
Power apps formula cheat sheet
Masayuki Ozawa
 
K8s install (single cluster)
K8s install (single cluster)K8s install (single cluster)
K8s install (single cluster)
Masayuki Ozawa
 
Managed Instance チートシート
Managed Instance チートシートManaged Instance チートシート
Managed Instance チートシート
Masayuki Ozawa
 
Pacemaker 操作方法メモ
Pacemaker 操作方法メモPacemaker 操作方法メモ
Pacemaker 操作方法メモ
Masayuki Ozawa
 
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Masayuki Ozawa
 
SQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンターSQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンターMasayuki Ozawa
 
和牛をおいしく食べるには
和牛をおいしく食べるには和牛をおいしく食べるには
和牛をおいしく食べるにはMasayuki Ozawa
 
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみよう
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみようSql serverデータアクセスの基本動作。荒ぶった方法で確認してみよう
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみようMasayuki Ozawa
 

More from Masayuki Ozawa (8)

Power apps formula cheat sheet
Power apps formula cheat sheetPower apps formula cheat sheet
Power apps formula cheat sheet
 
K8s install (single cluster)
K8s install (single cluster)K8s install (single cluster)
K8s install (single cluster)
 
Managed Instance チートシート
Managed Instance チートシートManaged Instance チートシート
Managed Instance チートシート
 
Pacemaker 操作方法メモ
Pacemaker 操作方法メモPacemaker 操作方法メモ
Pacemaker 操作方法メモ
 
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
 
SQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンターSQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンター
 
和牛をおいしく食べるには
和牛をおいしく食べるには和牛をおいしく食べるには
和牛をおいしく食べるには
 
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみよう
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみようSql serverデータアクセスの基本動作。荒ぶった方法で確認してみよう
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみよう
 

DBA から開発者への情報提供

  • 2. はじめに 2016/2/20Tokyo ComCamp 2016 powered by MVPs2  本セッションでは、SQL Database を使用して、いくつかのデモをお 見せします。  デモで実施する、特定の状態になったとき、  どのような情報をとれば、問題を解決する足掛かりとなる情報を取得で きるかが判断できる  普段の運用でこれらの状況を解決するための情報が、取得できているか  を、考えてみてください。  不意に質問が飛びますので、ご協力をお願いします。  私がお見せする方法以外にも様々な方法がありますので、違った見方の 意見は大歓迎です。
  • 3. 自己紹介 2016/2/20Tokyo ComCamp 2016 powered by MVPs3  フリーランスのエンジニアとして、SQL Server の技術支援を主に従事  SQL Server でご協力できることがありましたらお声がけいただけると幸いです  「ムッシュ 金麦」で検索すると、足跡がいろいろ出てきます  Microsoft MVP for Data Platform (July 2011 – June 2016)  SE の雑記 (ブログ): http://blog.engineer-memo.com  Twitter : @Masayuki_Ozawa  Facebook : masayuki.ozawa  GitHub : https://github.com/MasayukiOzawa
  • 5. 処理が遅い 2016/2/20Tokyo ComCamp 2016 powered by MVPs5  様々な原因  アプリケーションの問題?  製品の根本的な問題?  データベースの問題?  ハードウェアリソースの問題?  ネットワークの問題?  問題発生時には誰が調べる?  プログラム / 製品の問題は開発者?  製品の問題 / データベースの問題は保守担当者?  ハードウエア / ネットワーク問題は運用担当者? 問題の解決に向けて各担当が協力  みんなで幸せになろうよ
  • 6. DB 管理者観点で取得できる情報の一例 2016/2/20Tokyo ComCamp 2016 powered by MVPs6  実行中の情報  クエリ  ロック  キャッシュ (非永続化された情報)  キャッシュされたクエリ / データのキャッシュサイズ / インデックス使用状況  クエリ実行情報 (永続化された情報)  過去に実行されたクエリ / クエリの実行プラン  リソース使用状況  CPU / メモリ / ディスク I/O  複数のサーバーを管理している場合は、一箇所から見れる方法を検討
  • 7. 環境により取得できる情報の制約もある 2016/2/20Tokyo ComCamp 2016 powered by MVPs7  IaaS  OS にログインできるので、ログインして各種状態/情報を確認  エージェントをインストールして、外部に情報を連携  マネージドサービス  OS にログインすることはできないため、限定された情報の取得  提供されている方法の範囲で情報を取得  API 経由  SQL 経由 → SQL Database の場合は、SQL 経由でほぼ取得できる
  • 8. SQL Database を例とした情報の取得 2016/2/20Tokyo ComCamp 2016 powered by MVPs8 これからいくつかのケースで 取得できる情報をお見せします このような情報を共有することで みんなで幸せになれるといいな
  • 9. ケース #1 - 実行が完了しないクエリ - 2016/2/20Tokyo ComCamp 2016 powered by MVPs9
  • 11. どの情報を取得すればよい? 2016/2/20Tokyo ComCamp 2016 powered by MVPs11  SQL Server における一般的な方法  実行されたクエリ  プロファイラー  実行中のクエリ  利用状況モニター  最後に実行が完了したクエリ  キャッシュ (DMV)
  • 12. 今回のケースは「実行"中"」のクエリの情報を取得 2016/2/20Tokyo ComCamp 2016 powered by MVPs12  どのようなクエリが実行されているかの情報を取得  sys.dm_exec_requests (Transact-SQL) https://msdn.microsoft.com/ja-jp/library/ms177648(v=sql.120).aspx  経過時間  待機理由  ブロッキング (ロック競合) セッション  SQL Database v12 は SQL Server 2012 SP3 / SQL Server 2016 CTP 3 相当の情報を取得す ることが可能  Core SQL engine upgraded to SQL 2016  「PASS Summit 2015 : AD-214-M Azure SQL Database Investments and Roadmap」 より  Improved memory grant diagnostics when you use DMV in SQL Server 2012 https://support.microsoft.com/en-us/kb/3107398  SQL Database では利用状況モニターが使えないのでクエリでの確認を検討  sp_who / sp_who2 の利用  SQL Server 2016 の SSMS からは「ライブクエリ統計」が取得可能
  • 14. ロック競合 2016/2/20Tokyo ComCamp 2016 powered by MVPs14  リソースネックではない論理的な待ち  CPU / ディスク / メモリを増強しても、待ちの解消に対して効果がない可能性が高い  一般的にはコマンドタイムアウトの時間で、クエリの実行がキャンセルされ ることで、ロック競合が自動的に解消されるが、ツールによっては無制限の 可能性も  RCSI / スナップショット分離レベル / NOLOCK / READPASTによる読み取り競合の解消  どのデータを読み取ればよいかの要件に依存  SQL Database は RCSI / スナップショット分離レベルはデフォルト有効  SSMS やサードパーティーツール (ODBC 経由でアクセスする汎用 RDBMS の 管理ツール) 等の操作では、タイムアウトが発生せず、ロックが取得された ままの状態となる可能性がある  長時間のトランザクションの実行 / 編集画面を開いたままにする
  • 15. 参考) デッドロックの情報 2016/2/20Tokyo ComCamp 2016 powered by MVPs15  以前の SQL Database では、sys.event_log から取得できていたが、SQL Database v12 では、取得できなくっている。  sys.fn_xe_telemetry_blob_target_read_file から取得できる  Checking deadlocks in Azure SQL V12 https://social.msdn.microsoft.com/Forums/en-US/5426573e-29f6-4403- a9d9-40c9ac56ba0e/checking-deadlocks-in-azure-sql- v12?forum=ssdsgetstarted
  • 17. 全体の傾向として何起因の待ちが多い? 2016/2/20Tokyo ComCamp 2016 powered by MVPs17  ロック競合は「待ち事象」の一つ  待ち事象には様々な理由がある  ディスクからデータを読み込む待ち  CPU の使用権を確保するための待ち  ネットワーク転送の待ち  DMV から取得可能  sys.dm_db_wait_stats (Windows Azure SQL データベース) https://msdn.microsoft.com/ja-jp/library/dn269834(v=sql.120).aspx  待ち事象は「処理が完了したタイミング」で集計される
  • 19. ケース 2 - クエリ実行に失敗 - 2016/2/20Tokyo ComCamp 2016 powered by MVPs19
  • 21. DTU (Database Throughput Unit) 2016/2/20Tokyo ComCamp 2016 powered by MVPs21  SQL Database の性能はパフォーマンスレベル (価格帯)に応じて変わる  使用できるリソースの上限 / リストア粒度が変わってくる  CPU / メモリ / 接続数 / ディスク性能 / In-Memory OLTP ストレージ (Premium)  Basic / Standard と Premium では基本ディスク性能が異なる SQL Database options and performance: Understand what's available in each service tier より抜粋 https://azure.microsoft.com/en-us/documentation/articles/sql-database-service-tiers/
  • 22. リソースの使用状況 2016/2/20Tokyo ComCamp 2016 powered by MVPs22  sys.resource_stats  サーバーレベルで、5 分単位 / 約 14 日間保持  https://msdn.microsoft.com/en-us/library/dn269979.aspx  SKU / ストレージ / CPU / データ I/O / ログ書き込み  去年末ぐらいに増えました  ワーカー / セッション / DTU リミット  sys.dm_db_resource_stats  データベースレベルで、15 秒間隔 / 約 1 時間保持  CPU / データ I/O/ ログ書き込み / メモリ使用量  去年末ぐらいに増えました  In-Memory OLTP ストレージ / ワーカー / セッション / DTU リミット  sys.event_log  接続のトラブルシューティング / スロットル等のイベント  https://msdn.microsoft.com/en-us/library/dn270018.aspx  sys.database_connection_stats  接続についての概要情報  https://msdn.microsoft.com/en-us/library/dn269986.aspx
  • 24. ケース 3 - 実行されたクエリ - 2016/2/20Tokyo ComCamp 2016 powered by MVPs24
  • 26. クエリストア 2016/2/20Tokyo ComCamp 2016 powered by MVPs26  クエリコンパイル時の実行プランと実行統計情報を自動的に取得し保 存する  特定時点で使用されている実行プランを確認することができる。 SQL コンパイル 実行 プランストア 実行統計 クエリストア スキーマ クエリストア コンパイル メッセージ 実行 メッセージ 非同期 書き込み
  • 27. キャッシュとクエリストアの違い 2016/2/20Tokyo ComCamp 2016 powered by MVPs27  キャッシュ  メモリ上に保存されている最新のクエリ情報  再起動をするとキャッシュがクリアされる  プランキャッシュが枯渇してくると、クエリの情報がキャッシュアウトされる  最後の実行プランの情報がキャッシュされている  クエリストア  データベース内の保存されているクエリ実行情報  データベース内のテーブルに永続化された情報を保持  クエリストアで使用するサイズと保存する期間を設定  特定のクエリの実行プランの変遷を確認することができる
  • 28. クエリストアの確認方法 2016/2/20Tokyo ComCamp 2016 powered by MVPs28  Query Performance Insight  内部的にはクエリストアの情報を使用している  ポータルから確認することができる機能  SQL Server Management Studio  SQL Server 2016 の Management Studio で確認可能  クエリストアの情報を GUI で確認可能  クエリから確認  Query Store Catalog Views (Transact-SQL) https://msdn.microsoft.com/en-us/library/dn818149.aspx
  • 29. 拡張イベント (プレビュー) 2016/2/20Tokyo ComCamp 2016 powered by MVPs29  拡張イベントを使用してクエリ実行のトレースを取得  SQL Server プロファイラーの代わりとしての利用も検討  Azure ストレージにログファイルを出力可能  attention  blocked_process_report  database_xml_deadlock_report  error_reported  exchange_spill  execution_warning  existing_connection  full_text_crawl_started  fulltextlog_written  hash_spill_details  hash_warning  lock_acquired  lock_deadlock  lock_deadlock_chain  login  logout  missing_column_statistics  missing_join_predicate  module_end  object_altered  object_created  object_deleted  optimizer_timeout  plan_affecting_convert  progress_report_online_index_opera tion  query_execution_dynamic_push_do wn_statistics  query_optimizer_memory_gateway  query_post_compilation_showplan  query_post_execution_showplan  query_pre_execution_showplan  rpc_completed  rpc_starting  session_context_statistics  sort_warning  sp_statement_completed  sp_statement_starting  sql_batch_completed  sql_batch_starting  sql_statement_completed  sql_statement_recompile  sql_statement_starting  sql_transaction  unmatched_filtered_indexes  user_event  wait_info  wait_info_external  worker_wait_stats  xml_deadlock_report
  • 30. そのほかに 2016/2/20Tokyo ComCamp 2016 powered by MVPs30  欠落していると想定されるインデックス情報の取得  インデックスアドバイザー  1 週間程度のアクティビティから、効果があると思われるインデックスをアドバイス  動的管理ビュー (キャッシュ)  実行プランでインデックスが不足しているとアドバイスされたものを確認  sys.dm_db_missing_index_details (Transact-SQL) https://msdn.microsoft.com/ja-jp/library/ms345434(v=sql.120).aspx  sys.dm_db_missing_index_groups (Transact-SQL) https://msdn.microsoft.com/ja-jp/library/ms345407(v=sql.120).aspx  sys.dm_db_missing_index_group_stats (Transact-SQL) https://msdn.microsoft.com/ja-jp/library/ms345421(v=sql.120).aspx
  • 32. まとめ 2016/2/20Tokyo ComCamp 2016 powered by MVPs32  DB について、以下を意識した情報がみんなで共有できると幸せになれるかも  情報が格納される場所  キャッシュ / 外部データ  情報を取得すればよいタイミング  実行中 / 実行後  情報取得のタクト  最新 / 集計データ / 履歴  情報の確認方法  GUI / クエリ実行 / 通知