2012-12-01から1ヶ月間の記事一覧

統計情報の自動取得

SQLServer2008の統計情報はデフォルトでは自動で取得される。 統計情報の自動取得の設定はデータベースの「プロパティ」→「オプション」→「統計情報の自動更新」で確認することができる。 なお、テーブルごとに参照、設定したい場合はsp_autostatsを使用する…

ロックの状態を調べる

ロックの状態を調べるSQLは以下の通り SELECT resource_type as オブジェクトの種類, resource_associated_entity_id as エンティティID, (CASE when resource_type = 'OBJECT' then OBJECT_NAME(resource_associated_entity_id) else (SELECT OBJECT_NAME(O…

テーブルの結合順序を指定する

OPTION(FORCE ORDER)をSQLの最後につけるとテーブルの結合順序をオプティマイザに任せるのではなく、 From句に記述した順序にすることができる。Oracleの/*+ ORDERED */ヒントと同じもの。 以下使用例 SELECT * FROM HogeA INNER JOIN HogeB on A_ID = B_ID …

パフォーマンスカウンタ

パフォーマンスモニタで監視する主な項目のメモ。 ■メモリMemory\Available MBytes ・・・使用可能なメモリ(Mバイト)。 一般的には物理メモリの5%以上の値が好ましい。 Memory\Page Faults/sec ・・・1秒あたりのページフォルトの回数。 Memory\Pages/Sec…

インデックスの断片化

インデックスの断片化の情報を調べるのは以下の通り。 SELECT name as インデックス名, object_name(dm.object_id) as テーブル名, avg_fragmentation_in_percent as フラグメンテーション率 FROM sys.dm_db_index_physical_stats (DB_ID(), NULL,NULL, NULL…