iPad、iPhone5が市場を席巻しているが、Amazon Kindleの良さに今更ながら、気づいた。。。洋書の技術書があんなに安く買えるとは。。かつ、重い洋書が何十冊も入るし。。。時代に取り残されているな、俺。Tabltも昨日発表されたし、買おうか。
2011年9月29日木曜日
FAH Partition Table
FAHのXLA_EVENTS、XLA_DISTRIBUTION_LINKS、XLA_AE_LINES、XLA_AE_HEADERSテーブルは標準としてモジュール別にパーティション化されている。更にサブパーティション化を実施することはサポート外である為、注意。今後変更される可能性があるので、都度確認が必要。
2011年9月24日土曜日
OAFとADF
JSFが2.0になり、ADF11gも着実に進歩していてWeb Centerとの統合も進められているが、EBSのOAFのTechnologyは従来までのADF10gのままである。かつ、実行時にはOracleEBSが必要であるのは、開発環境として何か間違っていないか?
ラベル:
Info:OracleEBS12
2011年9月20日火曜日
Size between JA16SJIS and JA16SJISTIDE remote connection
JA16SJISとJA16SJISTIDE、SJISとEUC等の間をDBリンクでリモート接続する場合、実はSELECT時のVARCHAR2やCharのサイズが2倍以上になる。但し、「_keep_remote_column_size」と呼ばれる隠しパラメータがデフォルト(true)で効いているので影響がない。
推奨は同一文字コード。 JA16SJISとJA16SJISTIDEもSJISはSJISだが、全く異なる文字コードである為、注意。
推奨は同一文字コード。 JA16SJISとJA16SJISTIDEもSJISはSJISだが、全く異なる文字コードである為、注意。
2011年9月19日月曜日
統計情報が欠落、陳腐化しているテーブル・インデックスオブジェクトは?
SELECT table_name FROM dba_tab_statistics
WHERE stale_stats = 'YES'
OR last_analyzed IS NULL;
INDEXの場合は、
WHERE stale_stats = 'YES'
OR last_analyzed IS NULL;
INDEXの場合は、
INDEX_NAMEで、DBA_IND_STATISTICS静的ビュー。他にも 有効な列情報はあるので、Case by Caseで追加。
2011年9月16日金曜日
FFFTP
少し前の話になるけれど、FFFTPの開発終了宣言が話題になっていました。もう15年前ぐらいかな、パートナー会社の方に使い方を教えてもらった時は、何がどうなっているかわからなかったけど、それ以来、便利便利とずっと使ってたもんな。オープンソース、フリーツールはダメという御客様でも、何故かTeraTermとFFFTPはイイみたいな独特の立ち位置。
これからも使い続けると思います。全く御会いしたこともない方ですが、長い間お疲れ様でした。
これからも使い続けると思います。全く御会いしたこともない方ですが、長い間お疲れ様でした。
2011年9月9日金曜日
EBS Partition Table & Index
標準テーブルでパーティション化されていないテーブルをパーティション化する。その際に標準のINDEXをパーティション化するのは、前提条件はあるが、サポート内。
既にパーティション化されているものをサブパーティション化するのは、サポート外
既にパーティション化されているものをサブパーティション化するのは、サポート外
ラベル:
Info:OracleEBS12
2011年9月6日火曜日
PSI
SCMの中で使用されるコトバで、Production/Purchase-Sales-Inventoryの略。つまり、生販在の統合的な管理かなといっても、そのアルゴリズムはどうなっているのだろう。生産計画、購買計画、生産実績、購買実績、販売計画、販売実績、在庫管理、ロジティクス管理といった要素がMixedされて最適な計画ができるとは思うのだが、これにBOMとか絡んでくると、どのぐらい時間がかかるのものなのか?
2011年9月5日月曜日
GL PERIODS & Posting Performance
未来分(例えば、現在が2010年度だが、2013年度のデータを入れる)の仕訳データを格納した場合、オープン、クローズに関わらず、未来月分の残高が更新されていく為、転記処理のパフォーマンスに影響が発生する。
ラベル:
Info:OracleEBS12
2011年9月3日土曜日
Launcher
ランチャーってWindowsのQuick Launcherで十分と思って、馬鹿にしていたのだが、結構使ってみると良い。ごめんなさい。食わず嫌いだったな。
Launchy
http://www.launchy.net
Launchy
http://www.launchy.net
2011年8月30日火曜日
データ・ディクショナリ
当たり前すぎて、忘れてしまうので。メモ&コピー
データ・ディクショナリのすべての実表とユーザー・アクセス可能ビューは、Oracle DatabaseユーザーSYSが所有している。データ・ディクショナリの実表内のデータは、Oracle Databaseを機能させるために必要。このため、データ・ディクショナリの情報はOracle Databaseによってのみ書込みまたは変更される必要がある。したがって、Oracle Databaseのユーザーは、SYSスキーマに含まれている行またはスキーマ・オブジェクトを変更できない。変更すると、データ整合性が損われることがある。セキュリティ管理者は、このアカウントを厳しく管理する必要があり。
実表
ビュー
これらのビューは、実表にあるデータを、ユーザー名や表の名前などの実用的な情報にデコードし、結合と
データ・ディクショナリのすべての実表とユーザー・アクセス可能ビューは、Oracle DatabaseユーザーSYSが所有している。データ・ディクショナリの実表内のデータは、Oracle Databaseを機能させるために必要。このため、データ・ディクショナリの情報はOracle Databaseによってのみ書込みまたは変更される必要がある。したがって、Oracle Databaseのユーザーは、SYSスキーマに含まれている行またはスキーマ・オブジェクトを変更できない。変更すると、データ整合性が損われることがある。セキュリティ管理者は、このアカウントを厳しく管理する必要があり。
実表
ビュー
これらのビューは、実表にあるデータを、ユーザー名や表の名前などの実用的な情報にデコードし、結合と
WHERE句を使用して情報を簡略化します。これらのビューには、データ・ディクショナリ内のすべてのオブジェクトの名前と説明が含まれています。すべてのユーザーがアクセスできるビューもいくつかありますが、その他のビューは管理者のみが使用するように設計されています。
表6-1 データ・ディクショナリ・ビューのセット
| 接頭辞 | ユーザー・アクセス | 内容 | 注意 |
|---|---|---|---|
DBA_ | データベース管理者 | すべてのオブジェクト | 一部の DBA_ビューには、管理者にとって有用な情報を含む列が追加されています。 |
ALL_ | すべてのユーザー | ユーザーが権限を持つオブジェクト | ユーザーが所有するオブジェクトが含まれています。これらのビューは有効化されている現在の一連のロールに従います。 |
USER_ | すべてのユーザー | ユーザーによって所有されているオブジェクト | 接頭辞が USER_のビューには、通常、列OWNERは含まれません。この列は、問合せを発行するユーザーとして、USER_ビューに暗黙的に含まれています。 |
2011年8月26日金曜日
grep
Oracleの話題ばかりなので、少し違ったTipsを。
grepは以下の略とは本当か?
ex editorのグローバルサーチのg
正規表現のregular expression
printのp
grepは以下の略とは本当か?
ex editorのグローバルサーチのg
正規表現のregular expression
printのp
2011年8月25日木曜日
Call Stored Procedure② (OracleADF)
IN引数のみのストアド・プロシージャ呼出をする為には?
JDBC PreparedStatementオブジェクトを使用する。通常、以下の手順のヘルパーメソッドを用意し、呼出部分の簡素化を実施する。
- 渡される文のためのJDBC PreparedStatementを作成し、PL/SQLのbegin...endブロック内にラップする。
- バインド変数が渡された場合は、値のループ処理を実施する。
- 各バインド変数の値を文に設定する。(JDBCのバインド変数APIは1から始まる番号付けを使用するため、0から始まるforループのインデックス変数にコードで1を加えていることに注意する。)
- 文を実行する。
- 文をクローズする。
【Helper】
protected void callStoredProcedure(String stmt, Object[] bindVars) {
PreparedStatement st = null;
try {
// 1. JDBC PreparedStatement を生成
st = getDBTransaction().createPreparedStatement("begin "+stmt+";end;",0);
if (bindVars != null) {
// 2. バインド変数が渡された場合は、値を取得する。
for (int z = 0; z < bindVars.length; z++) {
// 3. PreparedStatementにパラメータをセットする。
st.setObject(z + 1, bindVars[z]);
}
}
// 4. ステートメントを実行。
st.executeUpdate();
}
catch (SQLException e) {
throw new JboException(e);
}
finally {
if (st != null) {
try {
// 5. ステートメントをクローズ。
st.close();
}
catch (SQLException e) {}
}
}
}
2011年8月23日火曜日
Call Stored Procedure① (OracleADF)
Oracle ADFからストアド・プロシージャをコールするサンプル。DBTracsactionインターフェースのexecuteCommand()メソッドを使用して procedure_with_no_argsプロシージャをコールする。
// In StoredProcTestModuleImpl.javapublic void callProcWithNoArgs() { getDBTransaction().executeCommand( "begin dev_sample.procedure_with_no_args; end;");}
2011年8月20日土曜日
TEMP Estimation
[Reuquirement Defenition & Design]
TEMP表領域を見積場合、最大取得テーブル件数の2倍が最初の見積
[Intgration Test]
Temp表領域のHWM、負荷テストにおけるTEMP表領域のHWM(特にオンライン負荷を徹底的に)
===領域管理をLOCALとした場合===
v$temp_extent_pool を使用したSQL。RACの場合、gv$temp_extent_pool
SELECT d.tablespace_name "Tablespace",
to_char(nvl(t.hwm, 0)/1024/1024,'99999990.999') "Used (MB)"
FROM sys.dba_tablespaces d,
(SELECT tablespace_name, sum(bytes_cached) hwm
from v$temp_extent_pool group by tablespace_name) t
WHERE d.tablespace_name = t.tablespace_name(+)
AND d.extent_management like 'LOCAL'
AND d.contents like 'TEMPORARY'
;
===領域管理をDICTIONARYとした場合===
SELECT total.TABLESPACE_NAME "Tablespace",
to_char((A/1024/1024 - B/1024/1024),'99999990.999') "Used(MB)"
FROM
(SELECT sum(bytes) A,
tablespace_name
FROM dba_data_files
GROUP BY tablespace_name) TOTAL,
(SELECT sum(bytes) B,
tablespace_name
FROM dba_free_space
GROU BY tablespace_name) FREE
WHERE total.TABLESPACE_NAME=free.TABLESPACE_NAME(+)
AND total.TABLESPACE_NAME='TEMP_DIC';
TEMP表領域を見積場合、最大取得テーブル件数の2倍が最初の見積
[Intgration Test]
Temp表領域のHWM、負荷テストにおけるTEMP表領域のHWM(特にオンライン負荷を徹底的に)
===領域管理をLOCALとした場合===
v$temp_extent_pool を使用したSQL。RACの場合、gv$temp_extent_pool
SELECT d.tablespace_name "Tablespace",
to_char(nvl(t.hwm, 0)/1024/1024,'99999990.999') "Used (MB)"
FROM sys.dba_tablespaces d,
(SELECT tablespace_name, sum(bytes_cached) hwm
from v$temp_extent_pool group by tablespace_name) t
WHERE d.tablespace_name = t.tablespace_name(+)
AND d.extent_management like 'LOCAL'
AND d.contents like 'TEMPORARY'
;
===領域管理をDICTIONARYとした場合===
SELECT total.TABLESPACE_NAME "Tablespace",
to_char((A/1024/1024 - B/1024/1024),'99999990.999') "Used(MB)"
FROM
(SELECT sum(bytes) A,
tablespace_name
FROM dba_data_files
GROUP BY tablespace_name) TOTAL,
(SELECT sum(bytes) B,
tablespace_name
FROM dba_free_space
GROU BY tablespace_name) FREE
WHERE total.TABLESPACE_NAME=free.TABLESPACE_NAME(+)
AND total.TABLESPACE_NAME='TEMP_DIC';
2011年8月19日金曜日
Oracle Application FAH (仕訳転送テンポラリテーブル)
Oracle Application のFAHは仕訳転送後のGLへのインポート時にGL_INTERFACEのようなテンポラリテーブルを作成する。(GL_INTERFACEはテンポラリではなく通常のテーブルである。)テンポラリテーブルは、そのままDBに残る為、パージプログラムを実施する必要がある。パージ・プログラムは、GLの会計期間がクローズされていない限り、有効にならない。
また、FAHで蓄積されていく取引データはGLのパージと連動して設計することが原則である。それはFAHが提示している機能を使用することを前提とした場合のオラクルの設計方針になっている為である。
また、FAHで蓄積されていく取引データはGLのパージと連動して設計することが原則である。それはFAHが提示している機能を使用することを前提とした場合のオラクルの設計方針になっている為である。
ラベル:
Info:OracleEBS12
2011年8月18日木曜日
UNDO TBS Estimation
実績ベースのUNDOの見積は以下の考え方で実施する。
OTN & KROWNで判る。また、R10.1より、V$UNDOSTAT の TUNED_UNDORETENTION でUNDO_RETENTIONはチューニングが実施されている。
(A × B + 64 ÷ C + D × 2) × C + 余裕値(単位:キロバイト)
A:UNDO_RETENTIONの値(0の場合は1)
B:V$UNDOSTATビューのUNDOBLKSの値を600で除算した値
一番更新が多い時間帯のレコードを元にすること
事前見積の場合は1秒あたりの発生UNDOブロック数を仮定
(1秒あたりのブロック数をどのように見積れば?)
C:ブロックサイズ(2/4/8/16/32のいずれか)
D:V$UNDOSTATビューのMAXCONCURRENCYの値
事前見積の場合は最大同時トランザクション数を仮定
<<UNDO_RETENTION < TUNED_UNDORETENTION の考え方>>
|<---------------------- TUNED_UNDORETENTION ------------------>|
|<--- UNDO_RETENTION ---->| |
|+++++++++++++++++++++++ |++++++++++++++++++++++++|
|<---------- 完全に保証 ---------->|<--- 保証されるとは限らない --->|
OTN & KROWNで判る。また、R10.1より、V$UNDOSTAT の TUNED_UNDORETENTION でUNDO_RETENTIONはチューニングが実施されている。
(A × B + 64 ÷ C + D × 2) × C + 余裕値(単位:キロバイト)
A:UNDO_RETENTIONの値(0の場合は1)
B:V$UNDOSTATビューのUNDOBLKSの値を600で除算した値
一番更新が多い時間帯のレコードを元にすること
事前見積の場合は1秒あたりの発生UNDOブロック数を仮定
(1秒あたりのブロック数をどのように見積れば?)
C:ブロックサイズ(2/4/8/16/32のいずれか)
D:V$UNDOSTATビューのMAXCONCURRENCYの値
事前見積の場合は最大同時トランザクション数を仮定
<<UNDO_RETENTION < TUNED_UNDORETENTION の考え方>>
|<---------------------- TUNED_UNDORETENTION ------------------>|
|<--- UNDO_RETENTION ---->| |
|+++++++++++++++++++++++ |++++++++++++++++++++++++|
|<---------- 完全に保証 ---------->|<--- 保証されるとは限らない --->|
2011年8月17日水曜日
2011年8月16日火曜日
Oracle Applications [GL]
OracleEBS 12.1.1 Information.
GL - General Ledger
GL - General Ledger-
222 Tables -
282 Views -
278 Concurrent Programs -
190 Lookup Types -
12 Diagrams & Reports -
16 Workflow Events
ラベル:
Info:OracleEBS12
V$CACHE
データベース・バッファ・キャッシュ上にあるオブジェクトをブロック順に降順に並べる
スクリプト .
v$cacheが作成される。
========================================================================
SELECT dbu.username OWNER_NAME
,vca.name OBJECT_NAME
,vca.partition_name PARTITION_NAME
,vca.kind OBJECT_TYPE
,count(*) BLOCK_COUNT
FROM v$cache vca, DBA_USERS dbu
WHERE vca.owner# <> 0
AND vca.owner# = dbu.user_id
GROUP BY dbu.username, vca.name, vca.partition_name, vca.kind
ORDER BY count(*) desc
;
========================================================================
スクリプト .
catclust.sql, catparr.sqlをsysdba権限のあるユーザーで実施するとv$cacheが作成される。
========================================================================
SELECT dbu.username OWNER_NAME
,vca.name OBJECT_NAME
,vca.partition_name PARTITION_NAME
,vca.kind OBJECT_TYPE
,count(*) BLOCK_COUNT
FROM v$cache vca, DBA_USERS dbu
WHERE vca.owner# <> 0
AND vca.owner# = dbu.user_id
GROUP BY dbu.username, vca.name, vca.partition_name, vca.kind
ORDER BY count(*) desc
;
========================================================================
About Oracle SQL Developer
SI Object Browser、PL/SQL Developerは、Oracle PL/SQL の開発やDBA管理に有効なツールだったけど、今はOracle SQL Developerが一押しである。通常のDML操作、DDL作成、PL/SQL開発(デバック機能含)だけでなく、UT Function等のUnit Test用の機能とPL/SQL Profilerを利用したCoverlage機能、Oracle社が提示している各種レポート機能(DBA系やCPU上位別SQL)、リアルタイムSQLモニタリング 、ドリルダウンによる実行計画の把握等、前はScriptにしてテキストファイルで大事に持っていた機能がツール化されている。更にSQL Developer Modelingと呼ばれるERツールとも連携しています。それが全てフリーで使えるのは素晴らしい。(決して、オラクル社の回し者ではない)
まあ、ますます、技術の中身を理解していく人が少なくなっていく気がするのだが、それは今の流れなのかもしれない。
まあ、ますます、技術の中身を理解していく人が少なくなっていく気がするのだが、それは今の流れなのかもしれない。
登録:
投稿 (Atom)