SQL Serverの性能の決定要因と, その全体像
SQL Serverを仕組みレベルで理解していきたい. 仕組みとは部品の集合, 整列であり, その仕組が果たすべきミッションが何なのか??を掴んでおかないと部品のキャッチアップはタダの知識inputにしかならない.
SQL Serverの目的はデータを適切, 正確に管理すること, として.
原則をhigh performanceで実現することだとしたときに, high performanceとは何なのか...??また, それの決定要因は何なのか??を全体像を捉えながらinputしていく.
そもそもPerformanceとは??
単純に考えればよい. 複雑に考えるべきものではない. データベース・サーバーはデータの管理に特化したサーバーであり, データ処理のリクエストを受領してから完遂するまでに性能の程度をPerformanceと捉えればよい. 同じ時間で大量に捌けるほどよいし, 同じ量を短時間で捌けるほどよいと考える.
パフォーマンス指標としては右記が代表的. TPS : Transactions Per Second, QPS : Queries Per Second, NOPM : New Order Per Minute
Performanceを改善するためには??
問題, ボトルネックの可視化が必要となる. ボトルネックの可視化のためには, 処理全体フローの可視化と, 所要時間と各処理の評価が必要となる. 処理全体プロセスと, 代表的なボトルネックポイントのインプットを行っていく.
処理全体プロセスは?? ~DBサーバー(Oracle9i R2 SE)を例に~
最終的には, どこかのプロセスの所要時間に処理遅延が, パフォーマンス低下の結果として表出する
基本的なデータベースサーバーの処理は製品ごとで変わらないはず.
https://gyazo.com/1c324a869d4d3f68fa1dabb71fa272e1
DB処理から, 物理読み取りが一番処理に時間を要しているとわかる.
要求されたデータをバッファキャッシュから参照するI/Oを論理読み取りと言い、要求されてデータがバッファキャッシュに存在しないためディスクからバッファキャッシュにコピーするI/Oを物理読み取りと言う。このような物理読み取りは、OSとのやり取りやハードディスクの回転といったDB外部の処理が発生させるため、最も重いDB処理とされている。
待機イベントから, データの参照方式にシーケンシャルスキャンしている.
表2の上位待機イベントリストで、「dbfile sequential read注2」(88.15%)が「db file scattered read注3」(0.05%)よりかなり高いことから、索引スキャンによるデータ読み取りの改善効果が最も大きいことが分かった
処理遅延の原因はどこにあるのか??
https://gyazo.com/9b420ea6c64595d113e34f80800d811d
主原因は大きく3つある.
ここでいう原因は実際の問題を引き起こしているクエリに紐づくわけではなく, あくまで問題を説明する. 具体的には, 1. システムリソースのボトルネック, 2. 非効率なクエリ, 3. 待機の事象 である.
1. システムリソースのボトルネック
事象: プロセッサ, メモリ, ディスクのリソース枯渇
リソースの枯渇とは: 各要素(ハードウェア部品)には処理許容量(キャパシティ)が存在する. 当キャパシティを超過したリクエストによって処理遅延が発生し, 結果クエリスループットが低下する.
原因ユースケース: 同時実行ユーザー数の増加, 1クエリが多くのシステムリソースを浪費, ハードウェアのキャパシティ不足
2. 非効率なクエリ
クエリはデータベースエンジンによって統計上を元にコンパイルされて最適な実行プランが生成されて実行される. しかし条件やインデックス不足でリソースを必要以上に多く使ってしまう.
3. 待機の事象
排他制御などによって別クエリ完了まで待ちが発生する.
それらってどのツールを使って確認ができるんだっけ??
https://gyazo.com/c120a6d3f829a8554e1fd590d30622f5
システムリソースのボトルネック分析方法
ボトルネックを特定するために主要なパフォーマンスカウンタの説明をする.
パフォーマンスカウンタの評価方法として, 正常運用時のパフォーマンスレベル(ベースライン)との値の比較をして評価をする.
プロセッサリソース
https://gyazo.com/935801702f9f3e6836484fc60fdbb1ff
メモリリソース
https://gyazo.com/6a957844f5fe1f7d5a8c9fae696f78de
ディスク
https://gyazo.com/20874ba9491909a5b6c7d6e62d6615c7