More Related Content
PDF
PPTX
Sql server 2016 ctp 3.0 新機能 PDF
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け! PDF
Oracle と sql server 比べてみよう (sql server) PDF
SQL Server運用実践 - 3年間80台の運用経験から20の教訓 PDF
Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介 PDF
Sql server data store data access internals PDF
de:code 2018 DA06 SQL Server 管理者におくる SQL Server on Linux Tips What's hot
PDF
待ち事象から考える、Sql server の改善ポイント PDF
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ PPTX
PDF
オンプレのDbaがazureのデータベースを使ってみた PDF
SQL Server 2014 In Memory OLTP Overview PDF
PDF
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル PDF
Sql database managed instance overview and internals PDF
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介 PDF
SQL Server 2014 データベースエンジン新機能 PDF
Always on 可用性グループ 構築時のポイント PDF
Data consistency 入門 data partitioning ガイダンス PPTX
Sql server のバックアップとリストアの基礎 PDF
Sql database 基本構成と直近で追加されていた機能の紹介 PPTX
Sql server 2014 新機能の紹介 改訂版 PPTX
DBTS2015_B35_SQLServer2016 PDF
A25 sql server data page structure deep dive PPTX
Sql server2014復習とsqlserver2016の紹介 PDF
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する Viewers also liked
PPTX
iostat await svctm の 見かた、考え方 PPTX
ここからはじめる SQL Server の状態取得 PPTX
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15 PDF
固定化か?最新化か?オプティマイザ統計の運用をもう一度考える。 -JPOUG Tech Talk Night #6- PDF
Sql server 2016 always on 可用性グループ new features PDF
SQL Server 2008/2008 R2/ 2012(/ 2014) 新機能 PDF
AWS GDC アップデート - Amazon GameLift PPTX
SQL Server replication overview (JP) PDF
SQL Server 現状診断サービス ご紹介資料 PPT
MoodleMoot Brasil 2011 - O Moodle na UFSC (Infraestrutura de TI) PDF
STelligence Savvius Thai Datasheet PPT
Caching Data For Performance PPT
Trabalhando com o Moodle e a Comunidade KEY
FRT Vol. 5 クラウド時代の企業アプリケーションとマーケティング PDF
SQL Server 簡易診断サービス ご紹介資料 PDF
Global Knowledge Training Courses & Promotion 2015-Sep PDF
ThaiCert Phishing and Malicious Code Infographic 2015 Similar to DBA から開発者への情報提供
PDF
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa PDF
A24 SQL Server におけるパフォーマンスチューニング手法 - 注目すべきポイントを簡単に by 多田典史 PDF
Bind Peek をもっと使おうぜ!(柴田 歩) - JPOUG Advent Calendar 2014(Day 5) - PDF
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba PDF
シンプルでシステマチックな Oracle Database, Exadata 性能分析 PDF
[B31,32]SQL Server Internal と パフォーマンスチューニング by Yukio Kumazawa PPTX
SQL Server 2019 とともに知る Microsoft Data Platform PDF
過去事例から学ぶ SharePoint パフォーマンス問題とその対策 PDF
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats... PPTX
PDF
性能問題を起こしにくい信頼されるクラウド RDB のつくりかた PDF
C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa PDF
PDF
C13 SQL Server2012知られざるTips集 by 平山理 PDF
Share pointを支えるsql server2014最新情報 tokyo_公開用 PPT
プロとしてのOracleアーキテクチャ入門 ~番外編~ PDF
PDF
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009 PDF
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 PDF
More from Masayuki Ozawa
PDF
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。 PDF
PDF
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみよう PDF
PDF
Power apps formula cheat sheet PDF
Windows エンジニア向け sql server on linux のためのスキルアップデート PDF
K8s install (single cluster) PDF
DBA から開発者への情報提供
- 1.
- 2.
はじめに
2016/2/20Tokyo ComCamp 2016powered by MVPs2
本セッションでは、SQL Database を使用して、いくつかのデモをお
見せします。
デモで実施する、特定の状態になったとき、
どのような情報をとれば、問題を解決する足掛かりとなる情報を取得で
きるかが判断できる
普段の運用でこれらの状況を解決するための情報が、取得できているか
を、考えてみてください。
不意に質問が飛びますので、ご協力をお願いします。
私がお見せする方法以外にも様々な方法がありますので、違った見方の
意見は大歓迎です。
- 3.
自己紹介
2016/2/20Tokyo ComCamp 2016powered 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
- 4.
- 5.
処理が遅い
2016/2/20Tokyo ComCamp 2016powered by MVPs5
様々な原因
アプリケーションの問題?
製品の根本的な問題?
データベースの問題?
ハードウェアリソースの問題?
ネットワークの問題?
問題発生時には誰が調べる?
プログラム / 製品の問題は開発者?
製品の問題 / データベースの問題は保守担当者?
ハードウエア / ネットワーク問題は運用担当者?
問題の解決に向けて各担当が協力
みんなで幸せになろうよ
- 6.
DB 管理者観点で取得できる情報の一例
2016/2/20Tokyo ComCamp2016 powered by MVPs6
実行中の情報
クエリ
ロック
キャッシュ (非永続化された情報)
キャッシュされたクエリ / データのキャッシュサイズ / インデックス使用状況
クエリ実行情報 (永続化された情報)
過去に実行されたクエリ / クエリの実行プラン
リソース使用状況
CPU / メモリ / ディスク I/O
複数のサーバーを管理している場合は、一箇所から見れる方法を検討
- 7.
環境により取得できる情報の制約もある
2016/2/20Tokyo ComCamp 2016powered by MVPs7
IaaS
OS にログインできるので、ログインして各種状態/情報を確認
エージェントをインストールして、外部に情報を連携
マネージドサービス
OS にログインすることはできないため、限定された情報の取得
提供されている方法の範囲で情報を取得
API 経由
SQL 経由
→ SQL Database の場合は、SQL 経由でほぼ取得できる
- 8.
- 9.
- 10.
- 11.
- 12.
今回のケースは「実行"中"」のクエリの情報を取得
2016/2/20Tokyo ComCamp 2016powered 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 からは「ライブクエリ統計」が取得可能
- 13.
- 14.
ロック競合
2016/2/20Tokyo ComCamp 2016powered by MVPs14
リソースネックではない論理的な待ち
CPU / ディスク / メモリを増強しても、待ちの解消に対して効果がない可能性が高い
一般的にはコマンドタイムアウトの時間で、クエリの実行がキャンセルされ
ることで、ロック競合が自動的に解消されるが、ツールによっては無制限の
可能性も
RCSI / スナップショット分離レベル / NOLOCK / READPASTによる読み取り競合の解消
どのデータを読み取ればよいかの要件に依存
SQL Database は RCSI / スナップショット分離レベルはデフォルト有効
SSMS やサードパーティーツール (ODBC 経由でアクセスする汎用 RDBMS の
管理ツール) 等の操作では、タイムアウトが発生せず、ロックが取得された
ままの状態となる可能性がある
長時間のトランザクションの実行 / 編集画面を開いたままにする
- 15.
参考) デッドロックの情報
2016/2/20Tokyo ComCamp2016 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
- 16.
- 17.
全体の傾向として何起因の待ちが多い?
2016/2/20Tokyo ComCamp 2016powered by MVPs17
ロック競合は「待ち事象」の一つ
待ち事象には様々な理由がある
ディスクからデータを読み込む待ち
CPU の使用権を確保するための待ち
ネットワーク転送の待ち
DMV から取得可能
sys.dm_db_wait_stats (Windows Azure SQL データベース)
https://msdn.microsoft.com/ja-jp/library/dn269834(v=sql.120).aspx
待ち事象は「処理が完了したタイミング」で集計される
- 18.
- 19.
- 20.
- 21.
DTU (Database ThroughputUnit)
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 2016powered 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
- 23.
- 24.
- 25.
- 26.
クエリストア
2016/2/20Tokyo ComCamp 2016powered by MVPs26
クエリコンパイル時の実行プランと実行統計情報を自動的に取得し保
存する
特定時点で使用されている実行プランを確認することができる。
SQL
コンパイル
実行
プランストア
実行統計
クエリストア
スキーマ
クエリストア
コンパイル
メッセージ
実行
メッセージ
非同期
書き込み
- 27.
キャッシュとクエリストアの違い
2016/2/20Tokyo ComCamp 2016powered by MVPs27
キャッシュ
メモリ上に保存されている最新のクエリ情報
再起動をするとキャッシュがクリアされる
プランキャッシュが枯渇してくると、クエリの情報がキャッシュアウトされる
最後の実行プランの情報がキャッシュされている
クエリストア
データベース内の保存されているクエリ実行情報
データベース内のテーブルに永続化された情報を保持
クエリストアで使用するサイズと保存する期間を設定
特定のクエリの実行プランの変遷を確認することができる
- 28.
クエリストアの確認方法
2016/2/20Tokyo ComCamp 2016powered 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 ComCamp2016 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 2016powered 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
- 31.
- 32.
まとめ
2016/2/20Tokyo ComCamp 2016powered by MVPs32
DB について、以下を意識した情報がみんなで共有できると幸せになれるかも
情報が格納される場所
キャッシュ / 外部データ
情報を取得すればよいタイミング
実行中 / 実行後
情報取得のタクト
最新 / 集計データ / 履歴
情報の確認方法
GUI / クエリ実行 / 通知