破壊神のび太

たまにタイトルが変わるブログ

スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | トラックバック(-) | コメント(-)

テーブルサイズを表示 

SELECT SEGMENT_NAME
,TO_CHAR(SUM(BYTES),'999,999,999') AS BYTES
FROM USER_SEGMENTS
GROUP BY SEGMENT_NAME
スポンサーサイト
[ 2010/04/02 15:10 ] OracleTips | TB(0) | CM(6)

複数のViewの構成を出力 

複数のViewの構成を纏めて出力する方法

---sqlplus開始---

set long 10000;

select view_name
,text
from sys.dba_views
where owner = 'スキーマ名';

spool ファイル名.csv;

---sqlplus終了---

spoolで出力されたファイルをエディタで開いて検索するだけ


この記事が参考になった、という方は、
↓をクリックで、応援お願いします!
[ 2010/02/03 14:08 ] OracleTips | TB(0) | CM(0)

FlashBackDropコマンド 

テーブル、インデックスをDropした場合、Purgeしない限りは

一時的にrecyclebin(ゴミ箱)に格納される

(注意:Oracle 10gからサポート)

もし、誤ってDropしてしまった際に戻す場合などに有効

--リサイクルビンの中身を表示
SELECT object_name --FLASH BACKに指定するオブジェクト名
,original_name --ドロップ前のオブジェクト名
,type --オブジェクトタイプ(テーブル、インデックスなど)
FROM recyclebin;

--オブジェクト名を指定して、FlashBack
flashback table "object_name" to before drop;

この記事が参考になった、という方は、
↓をクリックで、応援お願いします!
[ 2009/12/24 10:30 ] OracleTips | TB(0) | CM(0)

セッションKill 

セッション情報確認
select sid,
serial#,
username,
machine,
osuser,
program,
status
from v$session;

セッション強制終了
alter system kill session 'sid, serial#';


この記事が参考になった、という方は、
↓をクリックで、応援お願いします!
[ 2009/10/15 17:29 ] OracleTips | TB(0) | CM(0)

表領域の使用率を取得する 

tablespace_name: 表領域名
tablespace_kbytes 表領域サイズ(KB)
used_kbytes 使用済みの領域(KB)
free_kbytes 空き領域(KB)
capacity: 使用率(%)

select t.tablespace_name tablespace_name,
total_bytes / 1024 tablespace_kbytes,
(total_bytes - free_bytes) / 1024 used_kbytes,
free_bytes / 1024 free_kbytes,
to_char(((total_bytes - free_bytes) / (total_bytes)) * 100, '990.99') || '%' capacity
from
(select tablespace_name, sum(bytes) total_bytes
from dba_data_files
group by tablespace_name) t,
(select tablespace_name, sum(bytes) free_bytes
from dba_free_space
group by tablespace_name) f
where t.tablespace_name = f.tablespace_name
order by t.tablespace_name;


この記事が参考になった、という方は、
↓をクリックで、応援お願いします!
[ 2009/10/15 17:28 ] OracleTips | TB(0) | CM(0)

データポンプを利用したバックアップの取得 

①データディレクトリの確認(ディレクトリがあれば作成不要)

②ディスク領域見積り。エクスポートに必要なディスク領域の見積り。

③ディスクの使用状況確認。見積もった領域分の空きがあるか。

④データポンプエクスポートを実行し、ダンプファイルを作成


※②④は、スキーマレベルでなくテーブルレベルでも可能

-------------------------------------------------------------------------------

①データディレクトリ作成
create directory ディレクトリオブジェクト AS 'ディレクトリのパス';
grant read,write on directory ディレクトリオブジェクト TO ユーザ;

①ディレクトリパス表示
select * from dba_directories where directory_name;

②ディスク領域見積り実行(スキーマレベル)
expdp user/pass SCHEMAS=スキーマ DIRECTORY=データディレクトリ LOGFILE=見積りログ.log ESTIMATE_ONLY=y;

③ディスク使用状況確認
df -h

④データポンプエクスポート(スキーマレベル)
expdp user/pass SCHEMAS=スキーマ DIRECTORY=データディレクトリ DUMPFILE=ダンプ.dmp logfile=ログ.log content=data_only;



OTNマニュアル
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19211-01/dp_overview.html


この記事が参考になった、という方は、
↓をクリックで、応援お願いします!
[ 2009/10/15 17:28 ] OracleTips | TB(0) | CM(0)

10g以降のアナライズ 

ANALYZE構文は下位互換性の為にサポートされている為、10gではアナライズには

DBMS_STATSパッケージ を使用するよう推奨されています

このパッケージを使用すると、パラレルでの統計収集、パーティション化オブジェクトに対するグローバル統計収集、および他の方法での統計収集の詳細なチューニングを行うことができます

10g環境以降でアナライズを行う際は ANALYZE構文を使用せず、DBMS_STATSを使うという事です

以下、私がよく使うDBMS_STATSパッケージを利用したアナライズ


begin
dbms_stats.gather_table_stats(
ownname=> 'スキーマ名',
tabname=> 'テーブル名' ,
estimate_percent=> DBMS_STATS.AUTO_SAMPLE_SIZE,
cascade=> DBMS_STATS.AUTO_CASCADE,
degree=> 8,
no_invalidate=> DBMS_STATS.AUTO_INVALIDATE,
granularity=> 'AUTO',
method_opt=> 'FOR ALL COLUMNS SIZE AUTO');
end;


この記事が参考になった、という方は、
↓をクリックで、応援お願いします!
[ 2009/10/07 10:07 ] OracleTips | TB(0) | CM(0)

9iまでのANALYZEコマンド 

Oracleのオプティマイザにはコストベースとルールベースがありコストベースの場合、

ANALYZEコマンドにより採取した統計情報を基に実行計画を立てる


表の全データを読み取り統計情報を収集する
ANALYZE TABLE テーブルA COMPUTE STATISTICS;
※COMPUTE STATISTICS は、500KB 程度のテーブルに有効


30%のデータをサンプリングし統計情報を収集する
ANALYZE TABLE テーブルA ESTIMATE STATISTICS SAMPLE 30 PERCENT;
※ESTIMATE STATISTICS は、大規模なテーブルに有効


インデックスを読み取り統計情報を収集する
ANALYZE INDEX BPDEV.WK_BPD_SHNYSN_TRN_IDX COMPUTE STATISTICS


この統計情報を収集によって、検索時間の短縮に繋がる。

(9iまでのアナライズ方法です)

この記事が参考になった、という方は、
↓をクリックで、応援お願いします!
[ 2009/09/25 09:28 ] OracleTips | TB(0) | CM(0)

テーブル、カラムのコメント取得 

テーブル名とテーブルのコメントの一覧取得方法です

テーブル名、テーブルコメントで出力されます

select T.TABLE_NAME
,C.COMMENTS
from TABS T
,USER_TAB_COMMENTS C
WHERE T.TABLE_NAME = C.TABLE_NAME (+)



カラムのコメントの場合は、こちら

SELECT * FROM USER_COL_COMMENTS


使う用途としては、スキーマの持つテーブル一覧管理表を作る時などでしょうか



この記事が参考になった、という方は、
↓をクリックで、応援お願いします!
[ 2009/07/10 17:50 ] OracleTips | TB(0) | CM(0)

テーブル圧縮 

Oracleテーブル圧縮について紹介します

この機能を利用すると、DBを1/2~1/4くらい圧縮する事が可能で、

更にテーブル毎に圧縮ができ、圧縮しても

データ追加(INSERT)

データ削除(DELETE)

データ更新(UPDATE)

インデックス作成
など全てのDB機能が通常通り使えます。

DBリンク経由で、下位バージョンから圧縮テーブルにアクセスする事も可能です。

テーブルを圧縮するには、以下のコマンドを圧縮したいテーブルに対して実行します

以下が使用方法になります。
[ 2009/06/03 12:38 ] OracleTips | TB(0) | CM(0)


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。