tshizuku03の日記

主にoracleやLinuxコマンドについての記事を載せていきたいと思っています。

統計情報〜

自動統計情報収集ジョブが有効かどうか11g以降のバージョン

STATUS列がENABLED であれば、自動統計情報収集ジョブが有効化されている。

SELECT CLIENT_NAME,STATUS

FROM DBA_AUTOTASK_CLIENT

WHERE CLIENT_NAME='auto optimizer stats collection'; 

 現在の設定を確認

SELECT window_name,repeat_interval,duration,enabled

FROM dba_scheduler_windows

WHERE window_name not Like 'WEEK%'; 

※REPEAT_INTERVAL:ジョブが実行されるウィンドウごとの「繰り返し実行の定義」

DURATION:ウィンドウごとの「時間幅」

ENABL:有効(TRUE),無効(FALSE)

 

ヒント句について

ヒント句一覧はV$SQL_HINTビューで確認できる

Ciscoコマンド

バージョン情報を取得するコマンド

 # terminal length 0

terminal length は、何行ずつ表示させるか定義するコマンドです。例えば、
10行ずつ出力結果を表示させたい場合、terminal length 10 と入力します。
terminal length 0 と入力すれば出力結果の全てを表示するので、出力中の
「 --More-- 」 を表示させないようにできるので、ログ取得の際に便利です。

www.infraexpert.com

パーティションテーブル

大規模テーブルの管理作業をパーティションパーティションの導入で
容易にすることが可能です
・検索スピード検索スピードの向上
・メンテナンス作業の向上
・可用性の向上

CREATE TABLE interval_sales
( prod_id NUMBER(6)
, cust_id NUMBER
, time_id DATE
, channel_id CHAR(1)
, promo_id NUMBER(6)
, quantity_sold NUMBER(3)
, amount_sold NUMBER(10,2)
)
PARTITION BY RANGE (time_id)
INTERVAL(NUMTOYMINTERVAL(1, 'MONTH'))
STORE IN(USER01,USER02,USER03,USER04)
( PARTITION p0 VALUES LESS THAN (TO_DATE('1-1-2016', 'DD-MM-YYYY')),
PARTITION p1 VALUES LESS THAN (TO_DATE('1-2-2016', 'DD-MM-YYYY')),
PARTITION p2 VALUES LESS THAN (TO_DATE('1-3-2016', 'DD-MM-YYYY')) ); 

 マニュアル:

パーティションの作成

オプションのSTORE IN句を使用して1つ以上の表領域を指定できます。この表領域には、データベースが、後から作成される時間隔パーティションのために、ラウンドロビンアルゴリズムを使用して時間隔パーティション・データを格納できます。

ダイレクトロードインサート

別表から大量データをINSERTする場合、APPENDヒントを利用することで、
通常のINSERT処理ではなく、ダイレクトロードインサート処理を実行できます。
このダイレクトロードインサート処理では、バッファ・キャッシュを経由せずにデータを
INSERTすることができ、また最低限のREDO情報のみが生成されるため、通常のINSERT処理よりも
大きくパフォーマンスを改善できる可能性があります。

※注意点
1.ハイ・ウォーター・マーク(HWM)以降のブロックにINSERTされる
→通常のINSERT処理であれば、空ブロックにデータをINSERTすることが可能ですが、
ダイレクトインサートは、HWM以降のブロックにデータがINSERTされる。

2.表単位のロックが獲得される
→通常のINSERT処理はレコード単位でロックが獲得されますが、ダイレクトロードインサート処理では
表単位でロックが獲得されます。

3.ダイレクトロードインサート処理後、トランザクションを完了する必要がある
ダイレクトロードインサート処理の実行直後は、必ずトランザクションを完了させる(COMMIT・ROLLBACK)必要がある

 

基本コマンドとファイル操作4

**tac コマンド
ファイルの内容を最後の行から表示します。

**tee コマンド
標準入力から読み込んだデータを標準出力とファイルの両方に出力します。
実行例
[root@node001 ~]# nl test1.txt | tee test2.txt | head -2
1 aaa
2 bbb
[root@node001 ~]# cat test2.txt
1 aaa
2 bbb
3 ccc
4 ddd


**コマンドを連続実行する「;」「&&」「||」
構文
例1)コマンド1、コマンド2を順々に実行する
$コマンド1;コマンド2
例2)コマンド1が実行できれば、コマンド2を実行する
$コマンド1 && コマンド2
例3)コマンド1が実行できなければ、コマンド2を実行する
$コマンド1 || コマンド2

**grep コマンド
テキストデータないの文字列検索を行う。
構文

>-vパターンに一致しない行を表示する

-n行番号を表示する-lパターンと一致するファイル名を表示-i大文字と小文字を区別しないで検索を行う

 構文
$grep [オプション]検索する文字列パターン[ファイル名]...n

主なオプション説明
-v パターンに一致しない行を表示する
-n 行番号を表示する
-l パターンと一致するファイル名を表示
-i 大文字と小文字を区別しないで検索を行う

実行例

[root@node001 ~]# grep -n aaa test1.txt
1:aaa
[root@node001 ~]# cat test1.txt | grep -i aaa
aaa
[root@node001 ~]# cat test1.txt | grep -l aaa
(標準入力)
[root@node001 ~]# cat test1.txt | grep -v aaa
bbb
ccc
ddd

fff

ppp

[root@node001 ~]# #grep -l[一致するファイル名表示] [ファイル名]
[root@node001 ~]# cat test1.txt
aaa
bbb
ccc
ddd
fff
[root@node001 ~]# grep -l "aaa" *
mylist.txt
test1.txt
test2.txt

 

[root@node001 ~]# find [検索ディレクトリ][ファイル名検索]

[root@node001 ~]# find . -name "test1*.txt"
./test1.txt
./test/test1.txt

 

 **tail [オプション]ファイル名...n

主なオプション説明
-n 行数を数字で指定、末尾のn行部分を表示
-f ファイルの内容が増え続けているものと家庭し、常にファイルの最終部分を読み続けようとする

 

**tr コマンド
標準入力であるキーボードから入力した文字を指定したフォーマットに変換して、
標準出力であるディスプレイに表示することができます。
構文
tr [オプション][文字群1 [文字群2]]

主なオプション説明
-d 文字群1で合致した文字を削除する
-s 文字群1で合致した文字の繰り替えしを1文字に置き換える

 実行例

 [root@node001 ~]# cat test1.txt
aaa
bbb
ccc
ddd
[root@node001 ~]# tr a-z A-Z < test1.txt
AAA
BBB
CCC
DDD

 **tr コマンド
標準入力であるキーボードから入力した文字を指定したフォーマットに変換して、
標準出力であるディスプレイに表示することができます。
構文

tr [オプション][文字群1 [文字群2]]

主なオプション説明
-d 文字群1で合致した文字を削除する
-s 文字群1で合致した文字の繰り替えしを1文字に置き換える

実行例

[root@node001 ~]# cat test1.txt
aaa
bbb
ccc
ddd
[root@node001 ~]# tr a-z A-Z < test1.txt
AAA
BBB
CCC
DDD

**set コマンド
構文
set[オプション][編集コマンド][ファイル名]

主なオプション説明
-i 編集結果を直接ファイルに書き込む
-s/パターン/置換文字列 ファイル各行を対象に、最初にパターンに合致する文字列を置換文字列に変換
-s/パターン/置換文字列/g ファイル内全体を対象に、パターンに合致する文字列を置換文字列に変換
d パターンに合致する行を削除
p パターンに合致する行を表示

 実行例

[root@node001 ~]# sed 's/aaa/AAA/g' test1.txt
AAA
bbb
ccc
ddd
fff
ppp
AAA
[root@node001 ~]# sed -n '/aaa/p' test1.txt
aaa
aaa
[root@node001 ~]# sed '1d' test1.txt
bbb
ccc
ddd
fff
ppp
aaa
 

**wc コマンド
ファイル内のバイト数、単語数、行数を表示するにはwcコマンドを使用します。
構文

wc [オプション][ファイル名]

<table class="table2" border="1">
<tbody>
<tr>
<th><span style="color: #ff0000;">主なオプション</span></th>
<th><span style="color: #ff0000;">説明</span></th>
<tr>
<td>-c</td>
<td>バイト数だけ出力する</td>
</tr>
<tr>
<td>-l</td>
<td>行数だけを出力する</td>
</tr>
<tr>
<td>-w</td>
<td>単語数だけ出力する</td>
</tr>
</tbody>
</table>

 実行例

[root@node001 ~]# wc -l test1.txt
8 test1.txt
[root@node001 ~]# wc -c test1.txt
29 test1.txt
[root@node001 ~]# wc -w test1.txt
7 test1.txt

 **expand コマンド
引数で指定されたファイル内にあるタブをスペースに変換する場合に使用します。
構文
expand [オプション][ファイル名]

主なオプション説明
-i 行頭のタブのみスペースへ変換する
-t 置き換え桁数を指定する