火曜日 5 29, 2012

【セミナー動画/資料】60分で見て分かる!テーブル設計とデータベース・アプリ開発の基礎

資料の概要

  • 日付:2011/05/17
  • 種別:セミナー動画/資料

本セミナーでは、Oracle APEX を使ったデータベースのテーブル設計やデータローディング、レポートとフォームのアプリケーション開発を、60分に凝縮して解説します。データベース・アプリ開発に必要な基礎知識を一石二鳥で学べるセミナーです。ぜひご受講下さい!

  • データベース表の準備
    / 表の設計、表の作成、データのローディング、Demonstration:やってみよう!データベース表の作成
  • アプリケーションの作成
    / アプリケーションの作成、レポートの作成、グラフの作成、Demonstration:やってみよう!アプリケーションの作成

資料のダウンロード

こちらより、資料をご覧いただけます
http://otndnld.oracle.co.jp/ondemand/otn-seminar/movie/20110517_dbbeginners_apex.wmv
http://otndnld.oracle.co.jp/ondemand/otn-seminar/movie/mp4/20110517_dbbeginners_apex.mp4
http://www.oracle.com/technetwork/jp/ondemand/db-basic/0517-1100-dbbeginners-apex-404635-ja.pdf

火曜日 12 20, 2011

LOB(内部LOB)の使い方~BLOB/CLOB、SecureFiles

LOBとは

LOBは、Oracle Databaseではバージョン8より利用可能な機能です。
LOBは、SQL99で標準のデータ型として定義されており、Oracleの場合、以下のような特徴があります。

  • 大量のデータを保持するように設計されたデータ型
  • 最大サイズは128TB (事実上、サイズ上限を気にしなくとも良い)
  • LONG、LONG RAWに比べると柔軟
  • 1つの表は複数のLOBを利用可能
  • LOBはランダム・アクセス可能
  • LOBオブジェクトの属性になれる
LOBを利用することで、データベース外に別管理されているバイナリデータなどと、データベース内に管理されているリレーショナルデータの両方を一元管理することができます。
このことにより、以下のようなメリットがあります(内部LOBの場合)。
  • アプリケーション・ロジックが単純化できる
  • 一つのトランザクションで操作が可能に
  • バックアップなどの運用を一元化できる
ここでは、LOBの機能・操作方法のポイントをご紹介します。
より詳しい内容は、以下のセミナー資料をご覧ください。

【セミナー動画/資料】LOB(BLOB)取り扱い説明書 ~画像・ドキュメントもDBで管理する~
http://blogs.oracle.com/oracle4engineer/entry/lob_db

内部LOB/外部LOB

OracleのLOBには、以下のようにデータベースの中にデータ自体を格納する「内部LOB」と、データは外部に置いたままの「外部LOB」のデータ型があります。

<内部LOB ( Oracle Database内部に格納するLOB )>
BLOB : バイナリデータを格納
CLOB : 文字データを格納
NCLOB : 各国語キャラクタ・セットの文字データを格納

<外部LOB ( Oracle Database 表領域の外にあるOSファイルに格納 )>
BFILE : 読み取り専用(アプリケーション内で書込みできない)

SecureFiles

Oracle Database 11g Release 1 の新機能として、SecureFilesが導入されました。
SecureFiles は、次の要件を満たすために導入された新世代の LOB データ型です

  • 機能拡張
  • 高パフォーマンス
  • 使いやすさ
  • 新しい LOB と 従来の LOB は選択可能
新しい LOB データ型を「SECUREFILE」、従来からの LOB データ型を「BASICFILE」と呼びます。
SecureFilesに関しては、以下の技術資料が詳しいです。

【技術資料】Oracle SecureFiles 機能解説:Oracle Database 11g
http://blogs.oracle.com/oracle4engineer/entry/oracle_securefiles_oracle_database_11g

LOBを含んだ表の作成方法 (SECUREFILE)

SecureFilesを利用すると、圧縮、暗号化、非重複機能といった新機能を利用することができます。
(圧縮、暗号化は Enterprise Editionの Option機能)

CREATE TABLE lob_tab (
id NUMBER(8) PRIMARY KEY,
blob_col BLOB)
TABLESPACE USERS
LOB(blob_col) STORE AS SECUREFILE(
TABLESPACE LOBTBS
COMPRESS MEDIUM
ENCRYPT USING 'AES128'
DEDUPLICATE
NOCACHE
FILESYSTEM_LIKE_LOGGING
DISABLE STORAGE IN ROW
STORAGE (
INITIAL 1M
NEXT 1M
)
);

LOBロケータ

LOBデータへのアクセスは、LOBが物理的に格納されている場所への参照を示す「LOBロケータ」を利用します。
OS上のファイルをアクセスするアプリケーションで利用するファイルポインタに相当します。
表セグメントに格納されるのはLOBロケータのみです。
(4000Bytes以下のデータ量の場合には、表セグメントに格納することが可能)


(例)LOBの操作 (LOBロケータを利用したLOB値へのアクセスと変更)

DECLARE
CURSOR c1 IS SELECT id, blob_col FROM lob_tab;
rec c1%ROWTYPE;
buffer RAW(256);
amount INTEGER;
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO rec;
EXIT WHEN c1%NOTFOUND;
BEGIN
DBMS_LOB.OPEN
(rec.blob_col, DBMS_LOB.LOB_READONLY);
amount := DBMS_LOB.GETLENGTH(rec.blob_col);
DBMS_LOB.READ
(rec.blob_col, amount, 1, buffer);
DBMS_OUTPUT.PUT_LINE(RAWTOHEX(buffer));
DBMS_LOB.CLOSE(rec.blob_col);
END;
END LOOP;
CLOSE c1;
END;
/

LOBの初期化します。
• 空のLOBを作成(LOBの実体は無し)

SQL> INSERT INTO lob_tab (id, blob_col) VALUES (2, EMPTY_BLOB());
SQL> INSERT INTO lob_tab (id, blob_col) VALUES (2, NULL);
SQL> UPDATE lob_tab SET blob_col = EMPTY_BLOB()
SQL> WHERE id = 2;
DECLARE
lob BLOB;
buffer RAW(256);
BEGIN
INSERT INTO lob_tab (id, blob_col) VALUES (3,empty_blob())
RETURNING blob_col INTO lob;
DBMS_LOB.OPEN(lob, DBMS_LOB.LOB_READWRITE);
buffer := HEXTORAW('0123456789ABCDEF');
DBMS_LOB.WRITE(lob, 8, 1, buffer);
DBMS_LOB.CLOSE(lob);
END;

ここでは、PL/SQLからのLOBロケータを利用した操作方法を説明しました。
SQL Loaderを利用した大量のLOBデータのローディング方法などの、より詳しい操作方法に関しては、以下のセミナーをご覧ください。

【セミナー動画/資料】LOB(BLOB)取り扱い説明書 ~画像・ドキュメントもDBで管理する~
http://blogs.oracle.com/oracle4engineer/entry/lob_db

火曜日 11 29, 2011

【セミナー資料】実践!! 大規模データベース管理 ~パーティション基本編~

[Read More]

水曜日 11 23, 2011

【セミナー動画/資料】基礎から学ぶXML特集 ~Oracleで始めるXML~

[Read More]

月曜日 11 14, 2011

【セミナー動画/資料】基礎から学ぶXML特集 〜基本の基本!XMLと文法〜

[Read More]

火曜日 10 04, 2011

索引(インデックス)の断片化の確認方法と対処方法

B-Tree 索引(インデックス)は、B-Tree のレベル数(ルート・ブロックからリーフ・ブロックまでの階層)が高くなるとアクセス効率が低下します。
データの削除が多く行われるとブロックの使用効率が低下して B-Tree のレベル数が高くなります。
その場合は索引を再構築(REBUILD)する必要があります。

索引のアクセス効率が悪いかは、以下のように INDEX_STATS ビューの HEIGHT(Bツリーの高さ)と DEL_LF_ROW/LF_ROWS(削除されたエントリーの割合)を確認できます。

事前に、INDEX_STATS ビューを作成しておいてください。

ANALIZE INDEX >索引名< VALIDATE STRUCTURE;

確認方法

SQL> ANALYZE INDEX ix_test VALIDATE STRUCTURE;d
SQL> SELECT name, height, lf_rows, del_lf_rows FROM index_stats;

NAME                           HEIGHT     LF_ROWS    DEL_LF_ROW
------------------------------ ---------- ---------- ----------
IX_TEST                                 2      70000      30000

確認の目安

HEIGHT が4以上で DEL_LF_ROW/LF_ROWS が0.2を超える場合は効率が悪いです。
索引の再構築を行うことを検討して下さい。

データ件数が多いためにBツリーのレベル数が高い場合があります。
それもアクセス効率が悪いです。
(Bツリーのレベル数は、キーサイズとデータ件数によります。つまり、リーフ・ブロックが多くなると階層が増えてしまいます)
その場合は索引をパーティション化することを検討して下さい。

参考資料

【セミナー動画/資料】LOB(BLOB)取り扱い説明書 〜画像・ドキュメントもDBで管理する〜

[Read More]

日曜日 8 21, 2011

Oracleにおける断片化の種類と解消方法~表領域、セグメント、エクステント、ブロック、テーブル、索引

断片化が発生すると、I/O効率が悪くなりパフォーマンスに影響が出ることがあります。
断片化はなぜ起こるかという原理や断片化の悪影響などの解説を、「津島博士のパフォーマンス講座」の連載の中で行っています。ぜひ読んでみてください。

一口に断片化といいますが、Oracle Database の場合、データベースの物理構造が階層になっており、階層に応じて発生する断片化の現象に違いがあります。
以下、データベースの物理構造ごとの断片化現象とその解決方法です。

階層 断片化現象 解決方法(再編成方法)
データファイル(表領域) ファイルレベルの断片化 OSコマンドによるデフラグ
データファイルレベルの未使用領域の発生 表領域レベルの再編成
データファイルの縮小
セグメント 位置の高いハイウォーターマーク セグメントレベルの再編成
セグメントレベルの未使用領域の発生 エクステントの切り捨て
セグメントレベルの再編成
階層の深いインデックス セグメントレベルの再編成
エクステント 不連続のエクステント セグメントレベルの再編成
表領域レベルの再編成
ブロック 行移行 セグメントレベルの再編成
行移行しているレコードのみの再編成
行連鎖 ブロックサイズ変更して再編成
ブロック内の未使用領域の発生 セグメントレベルの再編成

この続きは、こちらの記事をご覧ください。

月曜日 8 15, 2011

【セミナー動画/資料】Oracle Databaseによる効率的なXMLアプリ開発

資料の概要

  • 日付:2011/03/16
  • 種別:セミナー動画/資料

Oracle Database では、追加のオプション・ライセンスなしで、データベース層でXML関連の処理を行うことができます。この機能は、Oracle XML DB と呼ばれています。このセッションでは、Oracle Database を利用してXMLアプリケーションを開発する上で必要となる技術要素や考慮事項についてお伝えします。

  • はじめに
  • XML処理を実行するのはAP層?DB層?
  • 全体最適を考える(システム全体で必要となるハードウェア・リソースを最小化するには?)
  • 開発工数(本質ではない「開発」をいかに減らすか)
  • 運用・管理コスト
  • XML DB=Oracle Database であること、その価値

資料のダウンロード

こちらより、資料をご覧いただけます
http://otndnld.oracle.co.jp/ondemand/otn-seminar/movie/0316_1500_xmldb.wmv
http://www.oracle.com/technetwork/jp/ondemand/db-technique/0316-1500-xmldb-oddd-366284-ja.pdf

日曜日 7 24, 2011

【セミナー動画/資料】実践!! 大規模データベース管理 ~パーティション詳細編~

資料の概要

  • 日付:2011/01/19
  • 種別:セミナー動画/資料

「データ量が多いからメンテナンス作業が大変!!」「Index検索をしているのに、テーブルが大きいから遅い・・!」このような悩みを解決するのが、大規模テーブルに有効なパーティショニング機能です。「パーティションとは何か」「パーティションのメンテナンス方法」「パーティション検証結果」に加え、デモを交えながらパーティションの機能についてご説明します。

  • パーティションの概要
  • パーティションの管理
    / パーティション表の作成と移行、パーティション索引、パーティション表の結合、パーティション表のメンテナンス
  • パーティション検証
  • まとめ

資料のダウンロード

こちらより、資料をご覧いただけます
http://otndnld.oracle.co.jp/ondemand/otn-seminar/movie/PartDetail01191500.wmv
http://www.oracle.com/technetwork/jp/ondemand/db-technique/0119-1500-partition-detail-297510-ja.pdf
About

Oracleエンジニアの方がスキルアップしていただくために、厳選した情報をお届けしています

Search

Archives
« 4月 2014
  
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today
Bookmarks
関連サイト
ランキング:カテゴリ
ランキング:技術資料
ランキング:技術コラム