小物SEのメモ帳

IT関係の試したことや調べたことの備忘録

2017-02-01から1ヶ月間の記事一覧

【SQL Server】データの格納ページ位置の確認方法

テーブルに格納されているレコードがどのページにあるのか確認する方法です。 デッドロックの調査や以前説明したラッチ状況を確認する場合などに使えるかと思います。 sys.fn_PhysLocFormatter 今回確認に使うundocumentedなファンクションです。 どのような…

【SQL Server】ロックとラッチのトレース

SQL Serverの待機イベントの一つであるロックとラッチがどのような順番で獲得され、解放されるのかトレースしてみました。 拡張イベントの設定 トレースするにあたって拡張イベントを使います。 今回試すSQLはセッション63にて実行するので、フィルタしてあ…

【SQL Server】統計情報のヒストグラムと実行プランの予測行数

SQL Serverでは実行プランの決定における情報のうちの一つとして統計情報があります。 その統計情報のうちデータの分布を表すヒストグラムについて説明します。 統計情報は下記クエリで取得できます。 -- 引数は1つ目がテーブル名、2つ目が統計名 -- 結果セ…

【SQL Server】【Python】pyodbcでSQL Serverのテーブルからデータを取得する

CSVなどをデータ分析や可視化する際に個人的によくPythonのPandasを利用するのですが、SQLServer2016内に格納してあるデータを直接参照し、集計やグラフ作成する必要がありましたのでやってみました。 ※Python Anacondaを事前にインストール済みです。 事前…

【SQL Server】【Bat】コマンドラインからのSQL呼び出しサンプル

SQLCMDを用いて、batファイルからSQLを呼び出し、結果ファイルに書き出すサンプルです。 スペースによる固定長ではなく、スペースを除いたカンマ区切りで出力したいことが多いかと思います。システムの運用において定常業務の自動化などでちょっとしたbatか…

【SQL Server】クラスター化インデックスと非クラスター化インデックス

SQLserverのインデックスのうちよく使われる基本的なインデックスであるクラスター化インデックス、非クラスター化インデックス、付加列について解説します。これらはSQLserverのクエリをチューニングするうえでの基礎となるので押さえておくとよいでしょう…

【SQL Server】Plan Cacheのサイズと内訳

SQLServerでは実行プランに関する情報は、プランキャッシュ(Plan Cache)に格納してあります。 プランキャッシュはPerfmonやDMVにて以下の情報を取得することが可能です。 カウンター 説明 Object Plans ストアドプロシージャ、ファンクション、トリガーのク…

【SQL Server】テーブルごとのレコード件数およびディスク使用量を出力する

前回に引き続き、こちらもよく使うので備忘録です。 レコード件数はクエリの性能に影響しますので、取得の仕方を把握しておくとよいかと思います。左ペインのオブジェクトエクスプローラのデータベースを選択して、右クリックを押下し、「レポート(P)」-「標…