タグ

ブックマーク / ameblo.jp/archive-redo-blog (5)

  • 『[Oracle] shutdown normalでOracleインスタンスが停止しない。』

    [Oracle] shutdown normalでOracleインスタンスが停止しない。 | Archive Redo Blog shutdownコマンドには標準(normal)、トランザクション(transaction)、即時(immediate)、異常終了(abort)の4つのモードがありますが、shutdown normalで停止しようとした場合、接続中のセッションが存在するとそのセッションが終了するまでOracleインスタンスは停止しません。 ということは常識なのですが、ではセッションを切断してやれば停止できるのかとALTER SYSTEM KILL SESSIONコマンドを実行して、サーバー側から強制的に切断してみてもやはりOracleインスタンスは停止しません。 この時、v$sessionを確認すると select sid, serial#, username, status,

    『[Oracle] shutdown normalでOracleインスタンスが停止しない。』
  • 『[Oracle] exp/impとexpdp/impdbのパフォーマンス比較』

    [Oracle] exp/impとexpdp/impdbのパフォーマンス比較 Oracle 10g から Data Pump という機能が導入されました。 Oracle の従来のバージョンではデータのエクスポート/インポートを行うためにエクスポート/インポートユーティリティ(exp/imp)を使っていましたが、今後のバージョンでは Data Pump のエクスポート/インポートユーティリティ(expdp/impdp)が標準となります。 Data Pump を使うとより高速なインポート/エクスポートが可能になるということなのですが、実際どの程度速くなるものなのでしょうか? 簡単に検証してみました。 まずはエクスポートについてですが、以下の3パターンであるスキーマをエクスポートしてみました。 ● exp によるエクスポート exp system/manager@orcl owner=USER1

    『[Oracle] exp/impとexpdp/impdbのパフォーマンス比較』
  • 『[Oracle] ルールベースオプティマイザの廃止と動的サンプリング』

    Oracle 10g ではルールベースオプティマイザ(RBO)が廃止され、コストベースオプティマイザ(CBO)に一化されました。 ルールベースオプティマイザは実際に格納されているデータの内容に関係なく、一定のルールに基づいて SQL の実行計画を決定します。 一方のコストベースオプティマイザは、実際に格納されているデータの内容を分析し、SQL の実行計画を決定します。 どちらが優れているかといえば、総合的に判断するとコストベースオプティマイザということになります。 それゆえにルールベースオプティマイザは廃止されたというわけです。 しかし、コストベースオプティマイザも万能というわけではありません。 コストベースオプティマイザを使用するには、オプティマイザ統計情報の収集が必要です。 オプティマイザ統計情報が欠落している場合は、コストベースオプティマイザは適用できません。 このような場合、従来

    『[Oracle] ルールベースオプティマイザの廃止と動的サンプリング』
    replication
    replication 2015/02/02
    Oracle
  • 『[Oracle] ALTER TABLE ~ SHRINK SPACEによるセグメントの縮小』

    Oracle 9i 以前は、テーブルからデータを大量に削除した時などに、セグメントを縮小して空き領域を解放しようと思ったら、ALTER TABLE ~ MOVE コマンドなどを利用してテーブルを再構築するしかありませんでした。 ALTER TABLE テーブル名 MOVE TABLESPACE 表領域名; しかし、Oracle 10g から導入された ALTER TABLE ~ SHRINK SPACE コマンドを利用すれば、もっと手軽にセグメントの縮小を行うことができます。 ALTER TABLE テーブル名 SHRINK SPACE; MOVE と比較すると、SHRINK SPACE には以下のような利点があります。 オンライン中に実行できる MOVE の場合は表に排他ロックがかけられるが、SHRINK SPACE の場合は行排他ロックしかかけられない。 大量の作業領域を必要としない

    『[Oracle] ALTER TABLE ~ SHRINK SPACEによるセグメントの縮小』
  • 『[Oracle] LIKE 検索では全角の'%'、'_'も特殊文字として扱われる?』

    SQL で LIKE 条件を使うとパターン一致検索が実行できます。 この時、'%'と'_'はそれぞれ任意の文字列、任意の1文字を表す特殊文字として扱われます。 したがって、'%'や'_'という文字を検索したい場合は、エスケープ文字を使用して、文字としての'%'、'_'であることを明示する必要があります。 例えば、COL1 に'_'を含む TBL1 のレコードを検索したい場合は以下のように記述します。 SELECT * FROM TBL1 WHERE COL1 LIKE '%\_%' ESCAPE '\' と、ここまでは SQL の常識です。 しかし、実はこの'%'と'_'、全角の'%'、'_'でもやはり特殊文字として認識されてしまうのです。 つまり、 SELECT * FROM TBL1 WHERE COL1 LIKE '%_%' と記述すると、”任意の1文字を含む”となりますので、Nul

    『[Oracle] LIKE 検索では全角の'%'、'_'も特殊文字として扱われる?』
  • 1