ハロの外部記憶インターフェイス

そろそろ覚える努力が必要かも…

ORA

行データをカンマ区切り表示

ORACLE, MYSQLの場合 GROUP_CONCATを使用する。 SELECT GROUP_CONCAT(CLM_NAME) FROM TABLENAME; テスト用データ差癖 create table test1 (clm1 int, clm2 text(500)); insert into test1 values (1, 'abc'); insert into test1 values (1, 'def'); insert i…

大容量データのIMP時の注意点

ORA

旧バージョンのIMPを利用した場合、考慮すべき確認エラーポイント ・TEMP表領域のの拡張問題 :impでcommitオプションを設定しない場合、TABLE単位でのコミットが発生するため、大容量データが入ってるテーブル分がまるまるUNDO領域に確報されるため、容量不…

DBMS_DATAPUMPを利用したIMPORT/EXPORT

ORA

EXPORT DECLARE hdnl NUMBER; BEGIN hdnl := DBMS_DATAPUMP.open( operation => 'EXPORT', job_mode => 'SCHEMA', job_name=>null); DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'tab1.dmp', directory => 'DATA_PUMP_DIR', filetype => dbms_data…

ファイル操作

ORA

ファイル転送 ORACLEから他ORACLEへのファイル転送になる。 転送先をDBLINKで作成し、DBMS_FILE_TRANSFERパッケージを利用する。 ※転送先のユーザはDirectoryやファイル作成への権限が必要 CREATE DATABASE LINK TO_RDS CONNECT TO MYUSER1 IDENTIFIED BY pa…

DBLINKにTnsnamesを直接設定する

ORA

Usingに直接接続場所を設定する。 CREATE DATABASE LINK MY_LINK CONNECT TO MYDB IDENTIFIED BY MYDB USING '(DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=ipaddress) (PORT=1521)) (CONNECT_DATA= (SID=orcl)))'

シーケンスの現在値を調整する。

ORA

シーケンスの値を+1000して変更する ALTER SEQUENCE SEQ_NO INCREMENT BY 1000 NOCACHE; 結果確認 select SEQUENCE_NAME, MIN_VALUE, CACHE_SIZE, LAST_NUMBER from USER_SEQUENCES;

各表の最大水位と割当量調べ

ORA

最大水位標と割当量を調べるサンプル select t.table_name, t.blocks "最大水位標", s.blocks "割当量" from dba_tables t, dba_segments s where t.owner = 'orcl' and t.owner = s.owner and t.table_name = s.segment_name and s.segment_type = 'TABLE';

効率低下のINDEX検索

ORA

INDEX効率が悪くなったINDEXを調べ、再構築する INDEXは変更の場合も更新ではなく、既存データを削除し、新しく追加を行う。そのため、INDEXを更新したり削除すると、INDEX領域内に削除されて空きになる部分が発生する。 サンプルでは一般INDEXを検索し、20…

TABLEサイズを縮小する

ORA

ALTER ~ SHRINK SPACE セグメントを縮小するコマンド 行移動・行連鎖による断片化を解決してから実行するのが望ましい Oracle10gからの機能 declare W_TBL_nm varchar2(100); cursor CUR1 is select table_name from user_tables; begin open CUR1; loop fet…

テーブル使用量を縮小するスクリプト

ORA

TABLEの割り当てサイズと最大水位標を最小に戻す 前提条件:全てのテーブルは行移動無効がデフォルトである declare C_SCHEMA constant varchar2(10) := 'ORCL'; W_TBL_NM varchar2(20); cursor CUR1 is select TABLE_NAME from user_tables; --ログインユー…

PACKAGE 再コンパイル用スクリプト

ORA

PACKAGEを再コンパイルするスクリプト 処理内容:スキーマ内のコンパイルエラーになったパッケージの再コンパイルを行う declare C_SCHEMA costant varchar2(10) := 'ORCL'; W_SQL varchar2(1000); W_CNT pls_integer := 0; W_ERR_CNT pls_integer := 0; cur…

INDEX管理

ORA

ANALYZE INDEXの使用 ANALYZE INDEX indexname validate structure; DBMS_STATSの使用 ※ 統計情報を収集 DBMS_STATS.GATHER_INDEX_STATS('スキーマ名','Index名') 収集情報確認 select * from index_stats; SELECT INDEX_NAME NAME, LAST_ANALYZED FROM USER…

Schema Compile

ORA

DBMS_UTILITY.COMPILE_SCHEMA スキーマ内の全PLSQLをコンパイルする。但しエラーがあるPLSQLが有った場合は処理されない exec dbms_utility.compile_schema('scott');

analyze処理

ORA

8i以前はanalyze命令を使用したが、10g以降はdbms_statsパッケージを使用する事を追善している。 スキーマ(schema)単位の統計収集 スキーマの名前を指定する。 >> exec dbms_stats.gather_schema_stats('scott');

オラクルでシステム時間取得

ORA

年月日時分秒の取得 select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual; 年月日時分秒より詳しい情報取得 select to_char(systimestamp , "yyyy/mm/dd hh24:mi:ssff') from dual;