2017-02-01から1ヶ月間の記事一覧
テーブルに格納されているレコードがどのページにあるのか確認する方法です。 デッドロックの調査や以前説明したラッチ状況を確認する場合などに使えるかと思います。 sys.fn_PhysLocFormatter 今回確認に使うundocumentedなファンクションです。 どのような…
SQL Serverの待機イベントの一つであるロックとラッチがどのような順番で獲得され、解放されるのかトレースしてみました。 拡張イベントの設定 トレースするにあたって拡張イベントを使います。 今回試すSQLはセッション63にて実行するので、フィルタしてあ…
SQL Serverでは実行プランの決定における情報のうちの一つとして統計情報があります。 その統計情報のうちデータの分布を表すヒストグラムについて説明します。 統計情報は下記クエリで取得できます。 -- 引数は1つ目がテーブル名、2つ目が統計名 -- 結果セ…
CSVなどをデータ分析や可視化する際に個人的によくPythonのPandasを利用するのですが、SQLServer2016内に格納してあるデータを直接参照し、集計やグラフ作成する必要がありましたのでやってみました。 ※Python Anacondaを事前にインストール済みです。 事前…
SQLCMDを用いて、batファイルからSQLを呼び出し、結果ファイルに書き出すサンプルです。 スペースによる固定長ではなく、スペースを除いたカンマ区切りで出力したいことが多いかと思います。システムの運用において定常業務の自動化などでちょっとしたbatか…
SQLserverのインデックスのうちよく使われる基本的なインデックスであるクラスター化インデックス、非クラスター化インデックス、付加列について解説します。これらはSQLserverのクエリをチューニングするうえでの基礎となるので押さえておくとよいでしょう…
SQLServerでは実行プランに関する情報は、プランキャッシュ(Plan Cache)に格納してあります。 プランキャッシュはPerfmonやDMVにて以下の情報を取得することが可能です。 カウンター 説明 Object Plans ストアドプロシージャ、ファンクション、トリガーのク…
前回に引き続き、こちらもよく使うので備忘録です。 レコード件数はクエリの性能に影響しますので、取得の仕方を把握しておくとよいかと思います。左ペインのオブジェクトエクスプローラのデータベースを選択して、右クリックを押下し、「レポート(P)」-「標…