2012-01-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…

データベースバッファキャッシュ

SQLServerはデフォルトで物理メモリのある限り、データベースバッファキャッシュとしてメモリを使用する。 なので、タスクマネージャでメモリを目一杯使用していてもメモリリークしているとは限らない。 サーバ上で動作しているのがSQLServerのみであれば上…

インデックスの不足を調べる

sys.dm_db_missing動的ビューを用いると不足していると思われるインデックスがわかる。 そのデータベース上で特にインデックスが不足していると推測されるものを探すSQLは以下の通り。 SELECT TOP 10 [Total Cost] = ROUND(avg_total_user_cost * avg_user_i…

Windowsファイアウォールのログ

Windowsファイアウォールのログを設定するとブロックされたIP、ポート等を調べることができる。 Windows2008での設定手順は以下の通り。 1.「コントロールパネル」→「Windowsファイアウォール」を開く 2.画面左の「詳細設定」のリンクをクリックし、「ロ…

ClickOnceでの発行手順のメモ

Visual stadio 2010からClickOnceの発行を行ったのでそのときの手順のメモ。 1.Webサーバに仮想ディレクトリを作成する。例)DefaultWebSite\deploy 2.Webサーバ側のdeployフォルダを共有フォルダにする例)hogesvr\deploy ※2のフォルダは発行先の端末か…

SqlBulkCopy

VB.NETからSQLSERVERに大量データをINSERTするには SqlBulkCopyを用いると高速で登録することができる。 以下、DateSetをBulkCopyする使用例 'appconfigよりDBへの接続文字列を取得 Dim strConn As String = System.Configuration.ConfigurationManager.Conn…

テーブルの容量取得

テーブルごとの領域一覧を取得するSQLは以下の通り --テーブル変数の定義 DECLARE @TEMP_TABLE table( row_id int IDENTITY(1,1) NOT NULL ,T_NAME varchar(128) NULL ,T_CNT bigint ,T_DATA bigint -- KBytes ,T_INDEX bigint -- KBytes PRIMARY KEY (row_i…

テーブルの領域見積

テーブルの領域を見積るSQL(少し正確でない部分もあるが・・・) テーブル名、行数を指定するとテーブルの構造を元に使用領域を返す。 --レコード数を指定 Declare @Line Numeric(19) Set @Line = 999 --テーブル名を指定 Declare @tblname varchar(50) Set @…

依存関係を取得

SQL Serverでストアドプロシージャ、ファンクション等が依存するオブジェクトを 取得するには.sql_expression_dependenciesを使用するとよい SELECT OBJECT_NAME( referencing_id ) AS オブジェクト ,referenced_entity_name AS 依存するオブジェクト ,* FRO…

動的コンテンツの圧縮

Webサービスなどの動的コンテンツを圧縮し、レスポンスを向上させることができる。 設定手順は以下の通り。 1.サーバ側の設定 (Windows 2008の場合) サーバの役割→役割サービスの追加→「動的なコンテンツの圧縮」をインストールを行う。 その後、IISのアプリ…

Microsoft Netwrok Moniter 3.4

Microsoftの提供しているパケットキャプチャツール。 以下、よく使う操作のメモ。 フィルタの書き方はC言語に似ている。以下、記述例。 プロセスでフィルタ ProcessName=="hoge" 複数条件でのフィルタは&&、||を用いる ProcessName!="" && ProtocolName=="SO…

アプリケーションプール

Webアプリケーションをそれぞれ別メモリ上で動かすことができる仕組み。 アプリケーションプールが同一だと、Webアプリケーションがクラッシュした際に 他のWebアプリケーションにも影響が出る恐れがある。 アプリケーションプールの追加方法 IISのコンソー…

ボトルネックの調査方法

CPU、メモリ、ディスクIO、TCPコネクションのざっくりしたボトルネックを調査する方法は以下の通り。 CPU・メモリ →タスクマネージャで使用率・使用量をチェックする。 CPUは100%に近くないか、メモリは物理メモリを超えていないかチェックする。 ディスクIO…

IISのログ

IISのログは規定ではC:\WINDOWS\system32\LogFilesに出力される (出力箇所はIISで変更可能) また、受信バイト・送信バイト等の情報はデフォルトでは出力しないようになっているため 出力したい場合はIISのコンソールよりWebサイトのプロパティ→「Webサイト」…

URI

URI Uniform Resource Identifierの略。 Web,LANにあるリソースの場所を示す識別子のこと。 URIはURLとURNを含む。 URL Uniform Resource Locatorの略。 URIの一部であり、リソースの場所を示すもの。 以下のようにプロトコル + ドメイン名 + フォルダ名 + …

プロセスの強制終了

Management Stadioを利用したプロセスを強制終了する手順は以下の通り 1.「サーバ」→「管理」→「利用状況モニタ」をダブルクリック 2.現在のプロセス情報が出力されるのでプロセスを選んで右クリック→「強制終了」 なお、プロセスを選んでダブルクリックをす…

Method Not allowed

IISからWebサービス等を呼び出した際にこのエラーが発生することがある。 これはASP.NET がインストールされていないか、または .svc ファイルが aspnet_isapi.dll にマッピングされていない場合に発生する。 (その他が原因のこともあるが以下の手順で治った…

VS2010Expressでビルド

Visual Stadio 2010 Expressではメニューに「ビルド」が表示されていない。(なんでや?) 「ツール」→「設定」→「上級者用の設定」にチェックを付けると「ビルド」がメニューに表示される。 動作確認環境:Visual Stadio 2010 Express

DataPump

Oracle10gR2からexp/impがサポートされていない(使うことは可能)。 ということでDatapumpを使用してみたのでメモ。 DataPumpを使用するためには以下のように、バックアップファイルを扱うディレクトリオブジェクトを作成して権限を与えておく必要がある CREA…

実行計画を調べる

SQLの先頭にEXPLAIN PLAN FOR を付けると実行計画を調べることができる。 なお、実行計画を取得するだけでSQLは実際には実行されない。 EXPLAIN PLAN FOR SELECT * FROM HOGE WHERE HOGE_ID = '001'; 上記で取得した実行計画を表示するのは以下の通り SELECT…

文字コードを変更

Visual Stadioでソースコードの文字コードを変更する方法。 「ファイル」→「名前を付けて保存」→「保存」ボタンの横にある▼→「エンコード付きで保存」 動作確認環境:Visual Stadio 2010 Professional

サービスのインストール

サービスのインストールはインストーラを使用する他にscコマンドを使ってインストールすることもできる。 インストールの例 sc create hogeService binPath= "C:\Program Files\hogeDir\hoge.exe"binpath"=の後ろにスペースを付けておく必要があるので注意 …

Windows Serviceの作り方

タイマーオブジェクトを使ってWindowsサービスを作ってみたので作り方のメモ 1.アプリケーションの種類をWindowsサービスにしてプロジェクトを作成する 2.Service1.vbのデザイナでタイマーを追加する。 なお、タイマーオブジェクトはWindowsFormのものは使っ…

互換性タブ

Windows 7では実行ファイルや実行ファイルのショートカットプロパティに互換性タブがある。 この設定をすることにより可能な限りアプリケーションの実行環境を過去のOSと互換になるようできる。 なお、互換性モードを有効にすることにより、ファイル実行時に…

バインド変数の値を確認する

実行されたSQLで使用されたバインド変数の値はV$SQL_BIND_CAPTUREで確認することができる。 使用例 SELECT V$SQL_BIND_CAPTURE.SQL_ID, V$SQL.SQL_TEXT, V$SQL_BIND_CAPTURE.NAME, TO_CHAR( LAST_CAPTURED, 'YYYY/MM/DD') LAST_CAPTURED_DATE, TO_CHAR( LAST…

統計情報の履歴

統計情報はデフォルトの設定で自動的に履歴が一定期間保存されている(たしかOracle10gくらいから) その履歴を使用すると統計情報を過去の状態に戻すことができる 現在の統計情報の履歴の保存期間を取得する SELECT DBMS_STATS.GET_STATS_HISTORY_RETENTION()…