都内で働くSEの技術的なひとりごと / Technical soliloquy of System Engineer working in Tokyo

都内でサラリーマンやってます。SQL Server を中心とした (2023年からは Azure も。) マイクロソフト系(たまに、OSS系などマイクロソフト以外の技術も...)の技術的なことについて書いています。日々の仕事の中で、気になったことを技術要素関係なく気まぐれに選んでいるので記事内容は開発言語、インフラ等ばらばらです。なお、当ブログで発信、発言は私個人のものであり、所属する組織、企業、団体等とは何のかかわりもございません。ブログの内容もきちんと検証して使用してください。英語の勉強のため、英語の

チューニング の検索結果:

待ち事象の一つである、『 TRANSACTION_MUTEX 』 を取り上げてみる

…L Server のチューニングにおいて、データベースサーバにどのような待ち事象が発生しているかを把握することは非常に重要です。SQL Server の待ち事象で代表的なものは、ASYNC_NETWORK_IO、SOS_SCHEDULER_YIELD、PAGEIOLATCH_***、WRITELOG 等があります。今回は 『 TRANSACTION_MUTEX 』 について取り上げたいと思います。待ち事象については、sys.dm_os_wait_stats で確認することがで…

SQL Server のチューニングについてまとめてみる - その15 - ( 無駄なキャッシュプランを探してみる )

…くしていきましょう。チューニングはまだまだ続く....続く....続く....※今までの記事でクエリの書き方が統一されていなかったですね。次回から今回の記事のような記述にします。テーブルの別名は、『AS』を付けないとか。なんか気分によって付けたり、付けなかったりするんですよね。※Kindle版と書籍版。Microsoft SQL Server 2014 Query Tuning & Optimization作者: Benjamin Nevarez出版社/メーカー: McGra…

インデックスの統計内容について参照してみる

…L Server のチューニングについてまとめてみる - その2 - ( フィルタ選択されたインデックス ) - 都内で働くSEの技術的なひとりごとSQL Server のチューニングについてまとめてみる - その2 - ( フィルタ選択されたインデックス ) - 都内で働くSEの技術的なひとりごと 推定実行プランとかSQL Server Management Studio の知っておいたほうが良い機能について挙げてみる - その1 - ( 推定実行プラン ) - 都内で働く…

こんな時、RECOMPILE したほうがいいよねと思って記事書いてみた

…L Server のチューニングについてまとめてみる - その7 - ( プランキャッシュの状態を確認する ) - 都内で働くSEの技術的なひとりごと SQL Server のチューニングについてまとめてみる - その7 - ( プランキャッシュの状態を確認する ) - 都内で働くSEの技術的なひとりごと クエリの内容は下記の通りです。 SELECT [SQL文] = SUBSTRING(st.text, (qs.statement_start_offset/2)+1, ((…

SQL Server のチューニングについてまとめてみる - その14 - ( 少しでもオーバーヘッドを少なくしてみる )

…leted successfully.と表示されています。これで、件数を返すためのオーバーヘッドを取り除くことができました。 おわりになにか言ってみる チューニングは地道に続けましょう。SQL Server Tuning Scripts: Performance Optimization Secrets作者: Robin Schumacher出版社/メーカー: Rampant Techpress発売日: 2014/05/27メディア: ペーパーバックこの商品を含むブログを見る

SQL Server のチューニングについてまとめてみる - その13 - ( その 12 の補足 )

…L Server のチューニングについてまとめてみる - その12 - ( SQL Server のメモリ関係で必要なカウンタを抽出してみる ) - 都内で働くSEの技術的なひとりごと SQL Server のチューニングについてまとめてみる - その12 - ( SQL Server のメモリ関係で必要なカウンタを抽出してみる ) - 都内で働くSEの技術的なひとりごと 上記の記事では、SQL Server Management Studio を使用して、NUMA ノードの…

SQL Server のチューニングについてまとめてみる - その12 - ( SQL Server のメモリ関係で必要なカウンタを抽出してみる )

今回やることを説明してみる 新年最初の記事はパフォーマンスカウンタです。(ちょっと地味ですね。)パフォーマンス計測で必要な SQL Server のパフォーマンスカウンタ ( sys.dm_os_performance_counters ) をまとめていきたいと思います。今回はメモリー関連です。 使用する環境を説明してみる 久しぶりの Microsoft Azure です。特に意味ないですが、A7 マシン上の SQL Server 2014 を使用したいと思います。 メモリー…

データベースファイルが格納されているドライブの残容量をチェックしてみる

…L Server のチューニングについてまとめてみる - その4 - ( クエリパフォーマンスの結果をメールで送る ) - 都内で働くSEの技術的なひとりごと SQL Server のチューニングについてまとめてみる - その4 - ( クエリパフォーマンスの結果をメールで送る ) - 都内で働くSEの技術的なひとりごと 今回のクエリを上記の記事内容のように設定して、自分宛てにおくってしまえば、容量不足でデータベースサーバが落ちちゃうこともないですよね? おわりに何か書いてみ…

SQL Server のチューニングについてまとめてみる - その11 - ( dm_exec_query_optimizer_info でチューニングの効果を確認してみる )

… 2014 です。 早速ためしてみる 下記のクエリを SQL Server Management Studio で実行します。 select * from sys.dm_exec_query_optimizer_info 個別のステートメント (クエリ) の最適化ごとの平均経過時間 (秒単位)や内部コスト単位での、最適化プランに対する推定コストの平均などを参照することが可能です。 おわりに何か書いてみる チューニング前後などに使用すると、ざっくりとした指標になるので便利です。

はてな記法は最高なので、今さらながら紹介してみた

…L Server のチューニングについてまとめてみる - その10 - ( 実行プランの StatementText の中に、調査用に使用するための文字列を埋め込んでみる ) - 都内で働くSEの技術的なひとりごと SQL Server のチューニングについてまとめてみる - その10 - ( 実行プランの StatementText の中に、調査用に使用するための文字列を埋め込んでみる ) - 都内で働くSEの技術的なひとりごと 下記のような記号で C# などのソースを記述…

SQL Server のチューニングについてまとめてみる - その10 - ( 実行プランの StatementText の中に、調査用に使用するための文字列を埋め込んでみる )

…L Server のチューニングについてまとめてみる』も今回で10回目になりました。それを記念してブログを『はてな記法 』で書いてみます。( 何で記念に『はてな記法』なのかは意味不明ですが... ) 今回は、実行プラン中に独自文字列を保持するようにしてみます。 使用する環境を説明してみる 私の Windows 8.1 Update1、64ビット 上で 動作している SQL Server 2014 を使用します。データベースは、AdventureWorks2014です。あと、開…

SQL Server のチューニングについてまとめてみる - その9 - ( TempDB の動きも気にしてみる )

今回のやることを説明してみる TempDB に関して気にしない人、多いです。一時テーブル ( ローカル、グローバル )とか、インデックスのリビルド時とか ( SORT_IN_TEMPDB = ONのとき )、データの並べ替えなどお世話になることが多いです。そこで今回は、TempDB にどれだけお世話になっているか見てみましょう。 使用する環境を説明してみる 今回は、Microsoft Azure 上の仮想サーバではなく、私の Windows 8.1 Update1、64ビット…

SQL Server のチューニングについてまとめてみる - その8 - ( 未使用なインデックスを抽出してみる )

今回のやることを説明してみる 未使用のインデックスが多く存在すると、追加・更新スピードなどに影響を及ぼします。よくあるクエリですが、未使用インデックスを抽出するクエリを作成したいと思います。 使用する環境を説明してみる Microsot Azure 上で 動作している Windows Server 2012 R2、SQL Server 2014 で動作確認をします。データベースは、AdventureWorks2012 を使用します。 実際にためしてみる 未使用インデックスのク…

SQL Server のチューニングについてまとめてみる - その7 - ( プランキャッシュの状態を確認する )

実行プランのキャッシュ状態、パフォーマンスをチェックするクエリです。オブジェクトの種類が Adhoc か Prepared なのかとか、その他色々気になりますよね? SELECT [SQL文] = SUBSTRING(st.text, (qs.statement_start_offset/2)+1, ((CASE qs.statement_end_offset WHEN -1 THEN DATALENGTH(st.text) ELSE qs.statement_end_off…

SQL Queries 2012 Joes 2 Pros® Volume 5: XML Querying Techniques for SQL Server 2012 を読もうとしたら、もう Nexus7 は売ってしまって読めないことが分かったので、急遽 Windows 8 上でなんとかならないか調べてみた

…L Server のチューニングについてまとめてみる - その6 - ( CONVERT_IMPLICIT、暗黙の型変換の怖さを知ろう ) - 都内で働くSEの技術的なひとりごと</a> SQL Server のチューニングについてまとめてみる - その6 - ( CONVERT_IMPLICIT、暗黙の型変換の怖さを知ろう ) - 都内で働くSEの技術的なひとりごと しかし、既に Nexus7 は売ってしまって、Kindle を使用することができません。(スマフ…

SQL Server のチューニングについてまとめてみる - その6 - ( CONVERT_IMPLICIT、暗黙の型変換の怖さを知ろう )

…L Server のチューニングについてまとめてみる - その5 - ( クエリプランから不足インデックス情報を取得する ) - 都内で働くSEの技術的なひとりごと</a> SQL Server のチューニングについてまとめてみる - その5 - ( クエリプランから不足インデックス情報を取得する ) - 都内で働くSEの…

SQL Server のチューニングについてまとめてみる - その5 - ( クエリプランから不足インデックス情報を取得する )

…おいて、DBMS のチューニングを始めなければいけません。ここ数日で、『SQL Server のチューニングについてまとめてみる』を充実させていきます。クエリプランから不足するインデックスを抽出したいと思います。クエリプランは、XML で格納されているため、通常の方法では抽出することはできません。 そこで、XQuery を使用してクエリプランの XML にアクセスします。今回使用している関数は、value() メソッド (xml データ型)、exist() メソッド (xml…

SQL Server の構造について記事にしてみる - その1 (インデックスの基礎知識) -

…L Server のチューニングについてまとめてみる - その2 - ( フィルタ選択されたインデックス ) - 都内で働くSEの技術的なひとりごと を参照してください。 1. クラスタ化インデックス クラスタ化インデックスとは、1テーブルに1つのみ定義可能なインデックスで、リーフノードにキーで並び替えられたデータ行も一緒に保持することが可能なインデックスです。キーの値はなるべく小さくすることで、より高速な検索を実現することが可能です。 図2:クラスタ化インデックス 2. 非…

設定の内容とか、ログの使用量とかのデータベースの状態を把握してみる

…L Server のチューニングについてまとめてみる - その3 - ( パフォーマンスがどれくらい改善される? ) - 都内で働くSEの技術的なひとりごと 取り上げたデータベースごとにインデックスがない件数も付加してみましょう。( ほとんど遊んでますねwww ) SELECT DB_NAME(database_id) as [データベース名], count(*) as [期待しているインデックスが存在しない数]FROM sys.dm_db_missing_index_det…

SQL Server のチューニングについてまとめてみる - その4 - ( クエリパフォーマンスの結果をメールで送る )

本日(7/10)は関東地方に台風が迫ってますね。関東のみなさま、早めに帰宅しましょう。台風はさておき、クエリのパフォーマンスを DMV から取得することはよくやりますよね?今回は、毎日定期レポート的にパフォーマンスの結果をメールに送信するようなことをやってみたいと思います。( 私はこんなメール受信したくないですけどww ) クエリパフォーマンスに関してはよく使用する下記のクエリで取得することが可能です。 SELECT [平均実行時間(msec)] = total_elapse…

SQL Server のチューニングについてまとめてみる - その3 - ( パフォーマンスがどれくらい改善される? )

…L Server のチューニングについてまとめてみる - その1 - ( インデックスの調査 ) - 都内で働くSEの技術的なひとりごと に関する補足です。 まずは、自分のデータベースに対していろいろなクエリを投げている状態で、そのクエリに対するインデックスがどのくらい不足しているかをざっくり参照する方法から試してみましょう。sys.dm_db_missing_index_details から取得できます。以下のクエリを SQL Server Management Studi…

SQL Server のチューニングについてまとめてみる - その2 - ( フィルタ選択されたインデックス )

…L Server のチューニングについてまとめてみる 』シリーズは『 その1 』で終わってましたね (笑) その1 で終わるのもどうかと思ったので、その2 をまとめてみたいと思います。( 適当すぎる.... ) 今回は、SQL Server 2008 から機能追加された、フィルタ選択されたインデックスについて説明します。 フィルタ選択されたインデックスは、例えば、テーブルのあるフィールドの内容が大部分 NULL の場合、そのフィールドの値が NULL ではないレコードだけを含…

そろそろ IIS のチューニングをする - その6( Performance Tuning for Web Servers )

IIS 8.5 に関するチューニングガイドがここにありますね。既にブログで紹介したものもありますが、一度読んでおくことをお勧めします。それ以外にも、Windows Server のチューニングに関しても記載がありますね。いい情報です。

そろそろ IIS のチューニングをする - その5( 『規定のドキュメント』の設定 )

規定のドキュメントを決定するのも結構大事です。頻繁にアクセスされるページなどは、規定のドキュメントの設定を使用して上位にもってくることでパフォーマンスを向上させることが可能です。既に設定されているリストの中に、該当するドキュメントが存在する場合、右上にメッセージが表示されます。(下記のリストは追加することも可能です。) 細かいことですが上記の対応するだけで、特に、『静的なドキュメント』の場合はカーネルモードでキャッシュされるため、大幅なパフォーマンス向上を期待できます。 20…

そろそろ IIS のチューニングをする - その4( http.sysのレジストリ設定 )

http.sys のレジストリ設定です。ここもチューニングする必要あります。 以上。

そろそろ IIS のチューニングをする - その3( 新しいログの取得方法 ※IIS 8.5からです ) -

…み上がりです。今回はチューニングというわけではありませんが、チューニングに必要なログ取得について書きたいと思います。 IIS 8.0 ( Windows Server 2012 ) から、IIS 8.5 ( Windows Server 2012R2 )になって、ログの取得方法が大きく変更されています。IIS 8.0 でのログ取得の設定画面は下図の通りです。 IIS 8.5 のログ取得の設定は下図の通りです。ログイベントの出力先が、ログ or ETW イベントが選択可能になっ…

そろそろ IIS のチューニングをする - その2( CPU Throttling 設定 ※IIS8.0からです ) -

IIS8.0からアプリケーションプールのCPU使用率が閾値を超えた場合の動作として、『Throttle』『ThrottleUnderLoad』を設定可能になりました。ここに説明が記載されています。複数のアプリケーションプールに対して『Throttle』『ThrottleUnderLoad』設定することで、アプリケーションプール間でCPU使用率が制御可能になります。それでは、早速設定してみましょう。IIS マネージャーを起動し、アプリケーションプールをクリックします。 ここでは…

そろそろ IIS のチューニングをする - その1( keep-alive 設定 ) -

IIS のチューニングをそろそろ開始しなければいけません。しかし、IIS のチューニング自体まじめにやった経験がありません。Windows Azure に Windows Server 2012 R2 でも作って、色々調査してみます。ふと、思ったんですが、仮想マシンの作成やたら高速になった気がするんですが、気のせいでしょうか?あと、仮想マシンの削除が少しだけ便利になっていますね。ディスクを削除するか選択できるようになっています。今までは、仮想マシンを削除した後に、ディスクも消…

SQL Server のチューニングについてまとめてみる - その1 - ( インデックスの調査 )

…L Server のチューニングについてまとめていこうかと思います。まずは、インデックスを使用していないクエリの抽出方法です。SQL Server のチューニングには、dm_* で始まる動的管理ビューを多用します。今回は、主に以下の3テーブルを使用して、インデックスを使用していないクエリを探してみましょう。 sys.dm_db_missing_index_group_stats欠落インデックス グループに関する情報を取得します。 sys.dm_db_missing_index…

SQL Server 2014 CTP1 インメモリテーブルの検証をやってみた

…ので、まだまだ色々なチューニング方法があるのでしょう。CTP2 がリリースされたら、日本語化されるようです。結合を含んだ SQL などで、再度検証してみようかと思います。(この記事では、インメモリテーブルの作り方を勉強したことにしましょう。) ※①の検証で、『logical reads 3, physical reads 3』 となっていますが、一度検索してデータがバッファキャッシュに乗ってしまうと、『logical reads 0, physical reads 0』となり…