<?xml version="1.0" encoding="UTF-8" ?>
<rss version="0.91">
  <channel>
    <title>OracleDBAの技術メモ</title>
    <description>最近物覚えが悪くなったので
仕事中に調べた後々役立つ情報をメモしております。</description>
    <link>http://techmemo.tou3.com/</link>
    <language>ja</language>
    <copyright>Copyright (C) NINJATOOLS ALL RIGHTS RESERVED.</copyright>

    <item>
      <title>Linux コマンド引数の文字数制限</title>
      <description>Linux コマンド引数の文字数制限について。&lt;br /&gt;
&lt;br /&gt;
Linuxの諸々のコマンドの引数については文字数制限が存在するらしい。&lt;br /&gt;
制限文字数（バイト数？）は以下のコマンドで確認できるとの事。&lt;br /&gt;
&lt;br /&gt;

&lt;pre&gt;getconf ARG_MAX
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
SentOS6での実行例は以下。&lt;br /&gt;
&lt;br /&gt;

&lt;pre&gt;$ getconf ARG_MAX
2621440
$
&lt;/pre&gt;</description> 
      <link>http://techmemo.tou3.com/linux%EF%BC%8D%E3%81%9D%E3%81%AE%E4%BB%96/linux%20%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E5%BC%95%E6%95%B0%E3%81%AE%E6%96%87%E5%AD%97%E6%95%B0%E5%88%B6%E9%99%90</link> 
    </item>
    <item>
      <title>列統計を取得しない統計情報収集</title>
      <description>以下のコマンドで列統計を取得しない統計情報収集が実行される。&lt;br /&gt;
&lt;br /&gt;

&lt;pre&gt;exec dbms_stats.gather_schema_stats(ownname=&amp;gt;'&amp;amp;owner', method_opt=&amp;gt;'FOR ALL COLUMNS SIZE 1');
&lt;/pre&gt;</description> 
      <link>http://techmemo.tou3.com/oracle%EF%BC%8D%E7%AE%A1%E7%90%86/%E5%88%97%E7%B5%B1%E8%A8%88%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%AA%E3%81%84%E7%B5%B1%E8%A8%88%E6%83%85%E5%A0%B1%E5%8F%8E%E9%9B%86</link> 
    </item>
    <item>
      <title>LOB列を使用することのデメリットについて</title>
      <description>LOB列を使用した場合のデメリットについて。&lt;br /&gt;
とてつもないデメリットが存在するのでメモしておく。&lt;br /&gt;
&lt;br /&gt;
EXPDPでのエクスポートの際に、とてつもなくパフォーマンスが悪化するらしいです。&lt;br /&gt;
特にLOBが別セグメントに保存されている場合で、このセグメントが大きい場合に&amp;hellip;&lt;br /&gt;
&lt;br /&gt;
EXPDPの場合、対象のセグメントが大きいとダイレクトパスが使用されず、&lt;br /&gt;
さらにLOBセグメントの場合PALARELLオプションが効かないとか&amp;hellip;&lt;br /&gt;
&lt;br /&gt;
レコード数が多くなるテーブルにはLOB列は使用しないようにしましょう！</description> 
      <link>http://techmemo.tou3.com/oracle%EF%BC%8D%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%83%81%E3%83%A5%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0/lob%E5%88%97%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AE%E3%83%87%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6</link> 
    </item>
    <item>
      <title>SQL実行の詳細を確認する</title>
      <description>DBMS_SQLTUNE.REPORT_SQL_MONITOR を使用することにより、&lt;br /&gt;
SQL実行計画のどこで時間がかかっているのか、どこで待機イベントが発生しているのかを確認できる。&lt;br /&gt;
&lt;br /&gt;

&lt;pre&gt;set long 1000000
set longchunksize 1000000
set linesize 1000
set pagesize 1000
select dbms_sqltune.report_sql_monitor('&amp;amp;sqlid') from dual;
&lt;/pre&gt;
&lt;br /&gt;
※&amp;amp;sqlid にはSQL_IDをセットする。&lt;br /&gt;
&lt;br /&gt;
実行された直後でないと情報が取得できないので注意。&lt;br /&gt;
（v$active_session_history を問い合わせているらしいので1時間程度？&lt;br /&gt;
　使ってみた感じでは5分、10分程度のような気も&amp;hellip;）&lt;br /&gt;
&lt;br /&gt;
直後でも取得できない場合は、SQL分に　/*+ monitor */ ヒントを付加するとよいかも。&lt;br /&gt;
&lt;br /&gt;
実行中のSQLが現在、実行計画のどの部分を実行しているかということも確認できるようだが&lt;br /&gt;
この関数の動作が遅いので実行後の確認に向いていると思われる。&lt;br /&gt;
&lt;br /&gt;
参考：Oracle Database パフォーマンス・チューニング・ガイド 11gリリース2(11.2)&lt;br /&gt;
　　　　10.4 リアルタイムSQL監視</description> 
      <link>http://techmemo.tou3.com/oracle%EF%BC%8D%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%83%81%E3%83%A5%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0/sql%E5%AE%9F%E8%A1%8C%E3%81%AE%E8%A9%B3%E7%B4%B0%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B</link> 
    </item>
    <item>
      <title>現在実行中のSQLを調べる（SQL_MONITOR）</title>
      <description>現在実行中のSQLを確認したい場合、パフォーマンスビュー：v$sql_monitor を問い合わせるとよい。&lt;br /&gt;
&lt;br /&gt;

&lt;pre&gt;col status for a20
col username for a15
col sql_id for a15
col id for 99
select inst_id id, status, sql_id, username, to_char(sql_exec_start, 'hh24:mi:ss') sql_exec_start, elapsed_time
from gv$sql_monitor
where status in ('QUEUED', 'EXECUTING');
&lt;/pre&gt;</description> 
      <link>http://techmemo.tou3.com/oracle%EF%BC%8D%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%83%81%E3%83%A5%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0/%E7%8F%BE%E5%9C%A8%E5%AE%9F%E8%A1%8C%E4%B8%AD%E3%81%AEsql%E3%82%92%E8%AA%BF%E3%81%B9%E3%82%8B%EF%BC%88sql_monitor%EF%BC%89</link> 
    </item>
    <item>
      <title>NUM_ROWSの値は正確ではないらしい</title>
      <description>ディクショナリ DBA_TABLES 等の「NUM_ROWS」列の値は正確ではないとのこと&amp;hellip;&lt;br /&gt;
&lt;br /&gt;
以下KROWNから抜粋&lt;br /&gt;
&lt;br /&gt;

&lt;pre&gt;例えば、NUM_ROWS は表の行数を示す統計値ですが、
サンプリングの結果見積られた行数が実際の表の行数を示すとは限りません。
&amp;hellip;（中略）&amp;hellip;
正確な行数を確認したい場合には、SELECT COUNT(*) などで値を取得する必要があります。
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
だそうです。　○rz</description> 
      <link>http://techmemo.tou3.com/oracle%EF%BC%8D%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%83%81%E3%83%A5%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0/num_rows%E3%81%AE%E5%80%A4%E3%81%AF%E6%AD%A3%E7%A2%BA%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%84%E3%82%89%E3%81%97%E3%81%84</link> 
    </item>
    <item>
      <title>ZIPコマンドでサブフォルダもまとめて圧縮するオプション</title>
      <description>ZIPコマンドでサブフォルダもまとめて圧縮するには&amp;rdquo;-r&amp;rdquo;オプションを使用します。&lt;br /&gt;
&lt;br /&gt;

&lt;pre&gt;zip -r xxx.zip xxx
&lt;/pre&gt;
※xxxはフォルダ名</description> 
      <link>http://techmemo.tou3.com/linux%EF%BC%8D%E3%81%9D%E3%81%AE%E4%BB%96/zip%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E3%82%B5%E3%83%96%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%82%82%E3%81%BE%E3%81%A8%E3%82%81%E3%81%A6%E5%9C%A7%E7%B8%AE%E3%81%99%E3%82%8B%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3</link> 
    </item>
    <item>
      <title>IMPDPで主キーが重複するレコードのみスキップする方法</title>
      <description>IMPDPでテーブルをインポートする際に&lt;br /&gt;
主キーが重複するレコードと重複しないレコードが混在している場合&lt;br /&gt;
重複するレコードを勝手にスキップしてくれる方法。&lt;br /&gt;
&lt;br /&gt;
次のオプションを設定する。&lt;br /&gt;

&lt;pre&gt;DATA_OPTIONS=SKIP_CONSTRAINT_ERRORS
&lt;/pre&gt;
&lt;br /&gt;
ただし、条件によっては意図したとおりに動作してくれない事があるらしいので、&lt;br /&gt;
その場合には次のオプションも付加してみる。&lt;br /&gt;

&lt;pre&gt;ACCESS_METHOD=CONVERTIONAL
&lt;/pre&gt;
&lt;br /&gt;
詳しくはKROWN#160588を参照。</description> 
      <link>http://techmemo.tou3.com/oracle%EF%BC%8D%E7%AE%A1%E7%90%86/impdp%E3%81%A7%E4%B8%BB%E3%82%AD%E3%83%BC%E3%81%8C%E9%87%8D%E8%A4%87%E3%81%99%E3%82%8B%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E3%81%BF%E3%82%B9%E3%82%AD%E3%83%83%E3%83%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95</link> 
    </item>
    <item>
      <title>AWR停止方法（AWRスナップショット取得停止）</title>
      <description>以下の方法によりAWRのスナップショット取得を停止することができる。&lt;br /&gt;
&lt;br /&gt;

&lt;pre&gt;EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(INTERVAL=&amp;gt;0);
&lt;/pre&gt;
&lt;br /&gt;
このコマンドはスナップショット取得間隔を操作するコマンドで、&lt;br /&gt;
取得間隔を&amp;rdquo;0&amp;rdquo;に設定することによりスナップショットの取得が行われなくなる。&lt;br /&gt;
&lt;br /&gt;
このコマンドでAWRスナップショットの保存期間の設定も変更可能となっている。</description> 
      <link>http://techmemo.tou3.com/oracle%EF%BC%8D%E7%AE%A1%E7%90%86/awr%E5%81%9C%E6%AD%A2%E6%96%B9%E6%B3%95%EF%BC%88awr%E3%82%B9%E3%83%8A%E3%83%83%E3%83%97%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%E5%8F%96%E5%BE%97%E5%81%9C%E6%AD%A2%EF%BC%89</link> 
    </item>
    <item>
      <title>AWRの保存期間等の設定確認方法</title>
      <description>AWRの以下の設定について&lt;br /&gt;
・スナップショット時間間隔&lt;br /&gt;
・スナップショット保存期間&lt;br /&gt;
「DBA_HIST_WR_CONTROL」ディクショナリを参照して確認する。&lt;br /&gt;
&lt;br /&gt;

&lt;pre&gt;SELECT * FROM DBA_HIST_WR_CONTROL;
&lt;/pre&gt;</description> 
      <link>http://techmemo.tou3.com/oracle%EF%BC%8D%E7%AE%A1%E7%90%86/awr%E3%81%AE%E4%BF%9D%E5%AD%98%E6%9C%9F%E9%96%93%E7%AD%89%E3%81%AE%E8%A8%AD%E5%AE%9A%E7%A2%BA%E8%AA%8D%E6%96%B9%E6%B3%95</link> 
    </item>

  </channel>
</rss>