2012-01-01から1年間の記事一覧

デッドロックのタイムアウト

Oracleでデッドロックが発生した場合はDBMSがそれを検知した時点で例外を発生させる。 また、デッドロックまでの待ち時間を変更したるすることはないっぽい。 よく考えてみると2つのトランザクションが相互にロックし合っているためどちらかを終了しないと…

ORA-00060

ORA-00060: リソース待機の間にデッドロックが検出されました。デッドロックが発生したときのエラー。 調査方法は以下の通り。 1.初期化パラメータに指定された場所にトレースファイルが出力されるのでその場所を確認する(以下、出力先を確認するSQL) SELE…

LEADINGヒント

結合順序を指定するヒント。 ORDEREDヒントはFROM句に記述された順だが、このヒントでは結合順を指定することができる。 SELECT /*+ LEADING (tblB, tblA) */ tblA * FROM tbl_AA tblA tbl_BB tblB WHERE tblA.HOGECD = tblB.HOGECD(テーブル名に別名を使用…

ORDEREDヒント

結合順序を指定するヒント。 テーブルの結合順序と結合アルゴリズムを指定することができる。 以下、使用例 SELECT /*+ ORDERED */ tblA * FROM tbl_AA tblA tbl_BB tblB WHERE tblA.HOGECD = tblB.HOGECDORDEREDヒントを使うとFROM句に指定した順で表結合が…

ロックしているテーブルを探す

V$LOCKED_OBJECTを使うとロックしているテーブルを調べることができる SELECT V$SESSION.SID, DBA_OBJECTS.OBJECT_NAME, V$SESSION.OSUSER, V$SESSION.PROGRAM, V$SESSION.MACHINE , V$SESSION.CLIENT_IDENTIFIER FROM V$LOCKED_OBJECT LEFT JOIN DBA_OBJECT…

ORA-01000: 最大オープン・カーソル数を超えました。

1セッションでオープン可能な最大カーソル数を超過した場合に発生するエラー。 原因を調査する方法は以下の通り。 初期化パラメータに設定されている最大カーソル数を調べるSQL SELECT VALUE FROM V$PARAMETER WHERE NAME ='OPEN_CURSORS';開いているカーソ…

コンピュータへの接続数が最大値に達しているため、これ以上このリモートコンピュータに接続できません。

Windows XPでは同時接続数が最大10となっており、セッションの数がそれを超えるとエラーとなってしまう。 セッションの数の確認と切断は以下の操作で行うことができる。 「管理ツール」→「コンピュータの管理」→「システムツール」→「共有フォルダ」→「セッ…

V$SQLSTATS

Oracle10g R2より容易されたビュー。 V$SQLよりパフォーマンスにすぐれ、共有プールから消えても参照でき保持期間も長い。 SELECT SQL_TEXT ,SQL_ID ,EXECUTIONS AS 実行回数 ,DISK_READS AS ディスクアクセスブロック数 ,BUFFER_GETS AS メモリアクセスブロ…

XPS(XML Paper Specification)

Microsoft社が開発した、電子文書を記述するためのXMLベースのフォーマット。 Windows 7 では「Microsoft XPS Document Writer」という仮想プリンタに用意されており ここに出力するとXPS形式のファイルとして印刷結果が出力される。 (PDFに出力するみたい…

フリーソフトのライセンスについて

フリーソフトのライセンスについてのまとめ(厳密には違っているかも) GPL (GNU General Public License )・・・ソースコードを公開する必要がある 一部でもGPLライセンスのソフトを利用して作成されたソフトはGPLライセンスでないといけない (コピーレフト…

tnsnames.oraが上書き禁止

Windows 7でtnsnames.oraを書き換えようとすると以下のようなメッセージが表示されることがある 他のプロセスで使用しているため編集不可(上書き禁止) これはUACの設定レベルがデフォルトのままだと発生するので以下の手順でUACの設定レベルを低くすること…

テーブルの容量計算

テーブルの容量をを求めるには以下の手順で レコードサイズと1ブロックあたりのレコード格納数を求める必要がある。 手順は以下の通り ■レコードサイズの求め方 レコードサイズ=レコードヘッダ+列ヘッダ+列のサイズ - 1)レコードヘッダ →3バイト2)列ヘッ…

名前空間xxxxでは不適切です

あいまいな名前を指定したため、ほかの名前と競合したときに コンパイラが競合を解決できないときに発生する。 もし、このエラーが発生した場合は 参照しているライブラリで同じ名前空間のものがないか確認してみること。

I/Oの待機イベント

V$SESSION_EVENTビューではセッション開始後のイベントの待機の合計情報を取得することができる。。 SELECT SID, EVENT as 待機イベントの名前, TOTAL_WAITS as 待機回数, TIME_WAITED/100 as 待ち時間計_秒, WAIT_CLASS FROM V$SESSION_EVENT ORDER BY 1ま…

ファンクション索引

これを利用すると関数の結果に対してインデックスを作成することができる。 関数の結果をあらかじめ計算しておき、インデックスとして作成されている。 使用例 (日付のMMDD部分のみでインデックスを作成する ) CREATE INDEX TBL_HOGE_IX2 ON TBL_HOGE (SUBST…