Oracle 質問総合スレ13 [無断転載禁止]©2ch.net

1NAME IS NULL2017/08/12(土) 12:02:03.32ID:???
◆前スレ
Oracle 質問総合スレ12
http://mevius.2ch.net/test/read.cgi/db/1471652805/

◆過去スレ
Oracle 質問総合スレ11
http://echo.2ch.net/test/read.cgi/db/1437510145/
Oracle 質問総合スレ10
http://peace.2ch.net/test/read.cgi/db/1403674585/
Oracle 質問総合スレ9
http://toro.2ch.net/test/read.cgi/db/1359049907/
Oracle 質問総合スレ8
http://toro.2ch.net/test/read.cgi/db/1335097274/
Oracle 質問総合スレ7
http://toro.2ch.net/test/read.cgi/db/1326074212/
Oracle 質問総合スレ6
http://toro.2ch.net/test/read.cgi/db/1314941245/
Oracle 質問総合スレ5
http://hibari.2ch.net/test/read.cgi/db/1279635842/
Oracle 質問総合スレ4
http://pc11.2ch.net/test/read.cgi/db/1250995281/
Oracle 質問総合スレ3
http://pc11.2ch.net/test/read.cgi/db/1223384283
Oracle 質問総合スレ2
http://pc11.2ch.net/test/read.cgi/db/1194742799
Oracle 質問総合スレ
http://pc11.2ch.net/test/read.cgi/db/1163907455

◆公式サイト
OTN-J
ttp://www.oracle.com/technetwork/jp/index.html

◆オンラインマニュアル
ttp://www.oracle.com/technetwork/jp/indexes/documentation/index.html

2NAME IS NULL2017/08/12(土) 12:21:32.68ID:???
◆My Oracle Support
ttp://support.oracle.com/

3NAME IS NULL2017/08/12(土) 12:38:31.52ID:???
7から使っている僕が一番Oracleを上手く使えるんだ...。
折角見つけたバッドノウハウはブログで書かないとダメなんだ...。

4NAME IS NULL2017/08/12(土) 12:59:25.39ID:4ORY6QJr
バージョンごとにいろいろ違うのにOracle 7から使っていると言ってるあとりがもうあれ。

5NAME IS NULL2017/08/12(土) 13:01:48.99ID:???
2ちゃんの年齢層的には7から使ってるのは普通

6NAME IS NULL2017/08/12(土) 13:19:17.41ID:???
ごめん10gからだわ

7NAME IS NULL2017/08/12(土) 13:25:51.62ID:???
若いとか羨ましい
若さだけは金で買えないからな

8NAME IS NULL2017/08/12(土) 14:36:34.69ID:4ORY6QJr
Oracle7の知識のなんていまとなっては不要。昔のバージョンの知識を新しいバージョンにもあてはめたり、間違った知識で言われるのも迷惑なんだよな。

9NAME IS NULL2017/08/12(土) 16:09:21.33ID:???
百里ある

10NAME IS NULL2017/08/13(日) 00:22:43.86ID:???
DEFERRED_SEGMENT_CREATION=TRUEでエクステントが作られていなくって
exp出来なかったというオチだなw

11NAME IS NULL2017/08/13(日) 00:54:19.33ID:???
それと勘違いされそうだったからテーブルにレコードは入ってるって書いたんだよ
あとその設定は元からfalseにしてあるよ

12NAME IS NULL2017/08/13(日) 02:10:56.50ID:???
はいはい、ブログが書けて良かったね( ´,_ゝ`)プッ

13NAME IS NULL2017/08/13(日) 08:26:06.92ID:???
まさかsysにオブジェクトでも作ってたか?w

14NAME IS NULL2017/08/13(日) 08:35:27.08ID:???
いちいち否定するのも面倒だからブログに帰るわ
おまいらの知識はその程度と分かったし

15NAME IS NULL2017/08/13(日) 09:04:10.32ID:BFCKA3Fk
>>11
レコードがあるかどうかではないだろ

16NAME IS NULL2017/08/13(日) 09:17:35.22ID:???
>>14
もう二度とこんな所来るんじゃねぇぞwww

17NAME IS NULL2017/08/13(日) 19:16:21.01ID:???
ブログ晒そうぜ
2chで馬鹿な質問してたってな

18NAME IS NULL2017/08/13(日) 22:10:27.98ID:???
ブログ特定したら全然大した事じゃなかったてバレるから今頃((((;゚Д゚))))ガクガクブルブル

19NAME IS NULL2017/08/14(月) 21:36:44.12ID:???
GIインストールしたあと、クラスタ名を確認するのって、どーすりゃいいんだ?

20NAME IS NULL2017/08/14(月) 23:14:36.74ID:???
>>19
olsnodes -c は?

21NAME IS NULL2017/08/15(火) 06:43:43.04ID:???
$GRID_HOME/bin/cemutlo -n でもイケる。

Usage: ./cemutlo.bin [-n] [-w]
where:
-n prints the cluster name
-w prints the clusterware version in the following format:
<major_version>:<minor_version>:<vendor_info>

22NAME IS NULL2017/08/15(火) 19:39:12.20ID:???
>>20,21
ありがとう。

23NAME IS NULL2017/09/11(月) 17:17:46.31ID:???
適当にマテリアライズドビューログクリエイトしたらEXPでora-1455でしっぱいするんやがなんで?expdpならいく…

24NAME IS NULL2017/09/12(火) 19:03:22.58ID:???
ここのところOracle関係でワクワクするニュースが聞こえてこない。
うちの会社じゃOracleは今やリスク要因になってるよ。ライセンス体系に関して
バージョンアップやクラウド対応で顧客に迷惑を掛けるケースが増えてきた。

25NAME IS NULL2017/09/13(水) 18:08:51.04ID:???
>>23
11g以降の通常業務でのexpはサポート外。

26NAME IS NULL2017/09/13(水) 19:52:13.51ID:???
俺は開発ベンダだけど、通常の案件はOracleで提案はしない
Oracleを使うのは顧客から指定がある場合のみ
従って何か問題があった場合は、基本的に顧客の責任

27NAME IS NULL2017/09/19(火) 10:28:19.92ID:???
質問させてください。

ASM上のファイルをPL/SQL(ファンクション)からファイルに対して存在確認やファイル名変更をしたいです。

ASM上のファイルをPL/SQL(ファンクション)からUTL_FILE.FRENAMEでファイル名変更などを行ってみたところエラーで出来ませんでした。知見のある方いわくASM上のファイルをUTL_FILE.FRENAMEなどで変更処理するのは無理なようですよ。と言われました。
本当に無理なのでしょうか?その場合、何か策はないでしょうか?

よろしくお願いします。

28NAME IS NULL2017/09/19(火) 11:04:41.23ID:???
セキュリティを理由にOracle入れたがる奴に限って非推奨な構文使ってたり構成自体が古かったりガバガバなのはなんで?

29NAME IS NULL2017/09/19(火) 11:15:26.64ID:???
>>27
OMFでググってみ

30NAME IS NULL2017/09/19(火) 11:16:17.99ID:???
>>28
自分で面倒見るの辛くなって高機能DBMSなら楽できるだろうという思い込みじゃね

31NAME IS NULL2017/09/19(火) 11:32:16.93ID:???
>>29
ググッたけど結局できるのかがパッと判断できませんでした(`д´;)クアッ
引き続き調べますが、もうちょっとヒント頂けると助かります。

32NAME IS NULL2017/09/19(火) 12:06:42.29ID:???
>>27
そもそもASM上のファイルをリネームするってどんな状況よ?
ACFSでも使っているのか?
素のASMならasmcmdからやる方が遥かに楽。

33NAME IS NULL2017/09/19(火) 13:15:46.88ID:???
>>32
情報を足しますと、expdpで作られるダンプをasm上に置くことが決まってます。なぜasm上に置くかは正直わかってなく、環境側からの指定です。クラスタしてますがacfsを使っているのかはわかりません。要件の関係で存在確認やリネームが必要です。

unixサーバなのですが、シェルでやっちゃうしかないですかね〜って話になりつつありますが、出来るだけオラクルの機能でどうにかしたいです。

34NAME IS NULL2017/09/19(火) 23:37:34.52ID:???
>>33
そもそもACFSでない素のasm上のファイルはリネーム効かないぞ?
単にaliasが代わるだけだ。
そんな使い勝手の悪いものの上に良くダンプファイル置く気になんかなるな。

35NAME IS NULL2017/09/19(火) 23:54:04.39ID:???
>>34
コメントありがとうございます。
まじですか・・・オラクル詳しいであろう環境の人が決めたこともありそれがベターなんだろうと思っていましたが。。素人なりに調べ直してみますm(_ _)m

36NAME IS NULL2017/09/19(火) 23:59:12.01ID:???
>>35
素直にACFSもしくはNFSファイル上に置け。
そんなシステム要件、クソだ。

37NAME IS NULL2017/09/20(水) 00:35:21.11ID:efa79eqb
>>35
オラクル社の人間はASMを使わせたいからそういう展開になる。

38NAME IS NULL2017/09/20(水) 02:14:38.64ID:???
>>36
NFSはセキュリティ要件的に微妙ってことで使用NGになり、ASMならOKって流れがあった記憶があります。ACFS調べてみます!

39NAME IS NULL2017/09/20(水) 02:39:50.67ID:???
>>38
ACFSが嫌ならDBFSだな。
PL/SQLとの親和性も高いぞ。

40NAME IS NULL2017/09/20(水) 09:24:25.57ID:???
>>39
根本的な疑問なのですが、acfsやdbfsを使わないとasm上のファイルは操作できないものなのでしょうか?
asmはソフトなので、asmの管理配下はインターフェースがあるacfsやdbfsじゃないと操作できないということですか?

逆に言うとasmかdbfsを使うか、asmをやめるかのどちらしかないということなのでしょうか。

41NAME IS NULL2017/09/20(水) 11:54:51.19ID:???
>>40
そもそもasmが特殊なrawデバイスみたいなもんだから、ファイルのリネームなどに対応していない。
削除や移動ならまだ何とかなるけどな。

acfsやdbfsはO/Sレベルでマウント出来るから、後は普通にO/Sコマンドが通る。

42NAME IS NULL2017/09/20(水) 12:42:36.18ID:???
dbfs使ったことないけど、自身の中に自身のバックアップ置くって推奨されるやり方じゃない気がするね。

43NAME IS NULL2017/09/20(水) 13:27:45.56ID:???
リネームは、dumpファイルを2世代持っておきたいためにexpdpして正常終了したらリネームして・・・みたいなことをやっています。教えて頂いた内容を候補にして、相談してみますm(_ _)
m

すみません、平行して別の質問させてください。バッチ処理の性能改善で特定のInsertとSelectをパラレル処理するように変更してみようと思い、まずはsqlplus上で試してみました。

1.alter session
2.select実行
3.SELECT * FROM v$pq_sesstat で1以上になっているか確認
→3.でQueryのところが1になっていたためパラレルで動いたぽい

1.alter session + ヒント句
2.insertやupdate実行
3.SELECT * FROM v$pq_sesstat で1以上になっているか確認
→3.でDMLのところが1以上にならなくて、パラレルで動けていないぽい

PARALLEL_MAX_SERVERSは1以上になっています。1.は調べた限りの数パターン試しました。なぜDMLの方は3.で1以上になってくれないのでしょうか?

44NAME IS NULL2017/09/20(水) 13:53:25.84ID:???
ちなみにパラレル化させた方が早くなるのかなと考えてるinsertは、values句を使った単純insert文です。

45NAME IS NULL2017/09/20(水) 21:53:30.06ID:???
>>43
どうしても二世代をASM上でキープしたいのなら、別ディレクトリ切ってそっちにファイルを
移動とかだろうね。

パラレルDMLはトランザクションの最初でなおかつ唯一である必要がある。
つまり先にupdateなりしていたら、コミットしていなければ後続は全てシリアルになる。

46NAME IS NULL2017/09/20(水) 21:54:28.89ID:???
>>42
そうだろうね。
後はテープなり何なりにダンプを落とすかだね。

47NAME IS NULL2017/09/20(水) 22:26:17.93ID:???
>>45
ググって見直してみたら確かにそう書いてありました。何となくなるほどと思っても、Javaの実装にどう当てはめて考えれば良いか難しいです。。

JavaWebアプリ(springframework,mybatis使用)で何千万のinsertを送るのを早くしたいのですが、無理なのでしょうか?それともうまいこと実装できれば可能なのでしょうか。トランザクション管理はspringframeworkの@DBTransactionとConnection.commitでやってます。

>>46
今日相談した結果、セキュリティ要件の問題はあるかもしれないけどやっぱりNFSでやらせてもらえないか確認しようってことになりました。NFSでやることになると、apサーバのシェルからsqlplusでログイン後クライアント経由でファンクションを呼ぶことになります。

48NAME IS NULL2017/09/20(水) 23:17:12.33ID:???
バルクインサートは?

49NAME IS NULL2017/09/20(水) 23:40:12.13ID:???
>>48
それは既にやってまして、mybatisのbatch insert(リストに貯めてflush呼ぶと一気に投げる)というのを使ってます!

正直それを使ってると、どう投げていてどういう理由で早いのかは理解できてないのですが。。(調べたけど見つからず)

50NAME IS NULL2017/09/21(木) 00:28:44.31ID:???
>>47
DBA的には嫌だけど、12cだったらAPPENDヒント使って、常に使用ブロックの上側に
書き込ませる様にすれば、言ってみればダイレクトインサートを使った時と同じ動きと
なるから、パフォーマンスが改善する事もあるみたいだな。

51NAME IS NULL2017/09/21(木) 01:03:44.00ID:???
Webアプリで何千万ものインサートって
なかなかアクロバティックなシステムだね

52NAME IS NULL2017/09/21(木) 01:19:36.62ID:???
何千万のインサートなら、バッチ処理として、sqlloaderでダイレクトパスインサートするのが一番早い気がする

53NAME IS NULL2017/09/21(木) 05:16:58.85ID:???
>>51
しかも出来上がってるものを性能改善しろだなんて、えーって感じです笑

>>52
sqlloaderも検討しました。それをやるやめにはまず完成されたinsert文をcsv出力する必要があると思っているのですが合ってますでしょうか?
DBアクセスはmybatisにお任せしていて、完成されたinsert文をcsv出力できないのではないかと思ってます。(調べてもログに出せるくらいのことしか見つからず)

csv出力できたとして、values句を使ったinsert文なのでcsvに書かれているinsert文にヒント句付ければ良いのでしょうか。。でもヒント句が出てくるとなるとパラレル処理の話が出てくる、、?

54NAME IS NULL2017/09/21(木) 07:06:51.65ID:???
いや、insert文じゃなくて普通のcsvファイルが必要。

csvのどの項目がどの列かってのは、sqlloaderの制御ファイルで指定する。ダイレクトパスとかの指定は、sqlloaderにオプションで渡すか、制御ファイルに記載する。

55NAME IS NULL2017/09/21(木) 09:44:16.38ID:???
>>54
一度だけ試したことはあったのですが、、全然違いましたね笑
やるとしたらinsertしたいテーブル分、csvファイルと制御ファイルのセットが必要でしょうか。。?

昨日一昨日ご相談した、asm/acfsについては環境の人に聞くとNFSにさせてもらうしかなさそうだねと言われました。
acfsがベターなのですが、今は暗号キーを置く場所として存在してるだけでapが何ギガものファイルを置く想定などないため、大きめの再構築が必要になるし無理!とのことでした。
ちなみにasmにはdb構成ファイルやdbバックアップ用?のダンプファイルなどを置くので領域はたくさんあるとのことでしたが、dba側の大事なファイルが入ってるasmをapが使うのは違うかねぇという話でした。

56NAME IS NULL2017/09/21(木) 10:42:46.11ID:???
>>51
ちなみに、、画面のあるwebアプリと同じようにspringframework-javaで作っているので話をわかりやすくするためにwebアプリといいましたが、実際はバッチです。apサーバとは異なるバッチサーバで動作してます。シェルでもありません。

>>45
サーバにsqlplusでログイン
alter session
update文

select from v$pq_sesstat
だけやってもダメなのですが、なにがダメなのかわかりません。余計な更新行に対するselectなどはしてません。
教えて頂けませんかm(_ _)m

57NAME IS NULL2017/09/21(木) 12:24:16.90ID:???
ここらへん見た上でパラレル化できないの?


http://www.oracle.com/technetwork/jp/ondemand/database/db-technique/parallel-exe-evening-100714-251722-ja.pdf

ちなみに単体のupdateで更新される行数は何行?

58NAME IS NULL2017/09/21(木) 15:01:03.35ID:???
パラレルになるかどうかは
まずはEXPLAINで確認したら?

59NAME IS NULL2017/09/21(木) 20:12:50.72ID:???
>>57
まだお試しなので1行でやってます!

>>58
実行計画とったところno pdml because no partitionみたいなエラーが出てました!実行計画はこういうのも教えてくれるんですね☆
このテスト環境は無理なんだと判断し、本番環境で試したらpdmlの結果が1になりました\(^^)/ありがとうございます!明日処理を組み込んで次の段階を試してみます!

60NAME IS NULL2017/09/22(金) 01:11:44.64ID:???
>>59
>まだお試しなので1行でやってます!

おいーーーー!!!

61NAME IS NULL2017/09/22(金) 02:28:22.20ID:???
>>59
一行をどうやってパラレル処理するんだよ?

62NAME IS NULL2017/09/22(金) 09:37:57.55ID:???
>>60
え(’o’)
>>61
えーーーーーーー!Σ(;゚д゚ノ)ノ─ッ!!

えーと、、ひとつで意味あるのか!?とは思ってはいたんですけど、今はpdml結果が1以上になるかをまず確認したかったのでひとつでやってました!

昨日ひとつでやってやっと1になったので、今日まず100くらいのデータからやってみようと思ってます!sqlplusからと実際Javaプログラムに組み込むのと両方試す予定です。

ちなみにですが、
1.sqlplusでログイン
2.alter session
3.insertやupdate実行
4.SELECT * FROM v$pq_sesstat でpmdlがいくつになっているか確認

この3.のときは、例えばinsert into - values(...);を100行コンソールに貼り付けてドンドン送る。というやり方で問題ないでしょうか?
それでも良いけど100じゃ少ないよ、insert allやこういうやり方の方が一気に送れて効果をみやすいよ、などあればコメントお願いしますm(_ _)m

63NAME IS NULL2017/09/22(金) 12:25:22.45ID:???
なんかそれだとjava的には一行ずつ渡してる感じじゃね?
そもそもinsertのパラレル化処理なんて、別テーブルから一気に読み込んだりするぐらいしないと効果は体感出来ないと思うぞ?

64NAME IS NULL2017/09/22(金) 14:34:55.16ID:???
>>63
Java側でmybatisのバルクインサートを使用しており、以下の要領でSQLは投げているようです。(一つ一つ投げているわけではないと思ってます)
insert into person
(id, name, address)
values
(1, 'John', 'Kyoto'),
(2, 'Mike', 'Tokyo');


昨日pdml結果が1になったと言ったのですが、その時はupdateで1でした。今日本来やりたいinsertで試したら1以上になってくれずオール0でした。
実行計画をとると以下の内容ですが、どうすればinsert /*+ APPEND_VALUES */ into values ...がpdmlになってくれるのかわかりません。。
「Degree of Parallelism is 1 because of session」「PDML disabled because
insert values was used」
Degreeって自動パラレル設定のことぽくてあまり関係なさそうだし、もう自分の中で打つ手がない状態です・・・。自動パラレル設定を検討した方が良いということなのでしょうか。

65NAME IS NULL2017/09/22(金) 14:48:06.27ID:1itx4Kq+
>>614
insert valuesは一行インサートだからパラレル化できないよっていってるんじゃないの?

insert selectじゃないとパラレル化できないよってことね。

66NAME IS NULL2017/09/22(金) 16:15:13.54ID:???
>>65
11gからvalues句のinsertもパラレル対応されて、append_valueヒント句を使えるようなこと書いてあるんですよね(><) 何か条件を満たしていないんでしょか。。
このままだとパラレル化は一旦諦めることになりそうです。

次はinsertをsqlloaderでやる検討になるかな。。

67NAME IS NULL2017/09/22(金) 16:46:27.79ID:???
今更かもですがパラレル処理って、既に登録されているデータにアクセスするアクセス方法を効率化させること、が主にやりたいことなのでしょうか??

だから、insert〜selectだったりただのselectだったりupdate〜whereだと、パラレル処理で動くが、insert〜valuesだと検索が必要ないのでパラレルにならない。
ということなのでしょうか?

それがそうだとしたら、なぜ11gからはinsert〜valuesも対応しはじめたのか。。これが出来るとしても検索ありのものとは、違う理屈で早くなったということなのかなと思いはじめました。

68NAME IS NULL2017/09/22(金) 17:10:43.92ID:???
>>66
ソースプリーズ

69NAME IS NULL2017/09/22(金) 17:38:23.58ID:???
メモリに一時テーブル作ってからINSERT SELECTしてみればいいんじゃないの

あとテーブルのパーティショニングはちゃんとやってるのかな?

70NAME IS NULL2017/09/22(金) 18:27:27.19ID:???
>>68
◇ケース1:pdml結果が0でダメ(本来やりたいのはこちらのins〜values)
ALT SESSI FORCE PARALLEL DML PARALLEL 3
ins /APPEND_VALUES / into tablename (culuma,culumb) value ('aaa','bbb')
※上記のようなinsを1000行一気に貼り付けて流した ※上記ins文のexpl plan結果は報告済み ※ヒント句なしも試した
SEL STATISTIC,LAST_QUERY,SESSION_TOTAL FRO vpq_sesstat

◇ケース2:pdml結果が1(insertができないからupdateでお試し)
ALT SESSIO FORCE PARALLEL DML PARALLEL 3
upd tablename set culuma 'aaa' where culumb 'bbb'
SEL STATISTIC,LAST_QUERY,SESSION_TOTAL FRO vpq_sesstat

71NAME IS NULL2017/09/22(金) 18:30:32.58ID:???
恐らくセキュリティ対策でSQLは書き込めませんでした。色々文字を削ってやっと書き込めましたので、ご了承ください。重要な所がわからなくなったいたら聞いて頂けたらと思います。

>>69
パーティションがどうなってるかなどはわかってないです。。複数パーティションに及ぶような更新にならないとパラレルにならないっていう話でしょうか?
正直そこそこ時間かけたのに出来ていないので、この先に必ずinsert〜valuesをパラレル化出来る保証があるのであれば良いのですが、、もう諦めムードになってきたのが正直なところです。

私が67で書いたことについてコメント頂けると助かりますm(_ _)m

72NAME IS NULL2017/09/22(金) 19:24:00.30ID:???
>>70
そのソースじゃなくて、11gで対応されたという情報のソース

73NAME IS NULL2017/09/22(金) 19:49:04.01ID:???
>>72
そゆことでしたか笑
https://www.shift-the-oracle.com/inside/direct-pass-insert.html
わたしの解釈がおかしくなければできると書いてあると思ってます。。

74NAME IS NULL2017/09/22(金) 19:55:53.33ID:???
>>73
いやそれ、パラレルじゃなくて、ダイレクトパスやん。。

75NAME IS NULL2017/09/22(金) 20:45:27.47ID:???
>>74
すみません、おっしゃってることがわかりますん。。
パラレルとダイレクトパスインサートはニアイコールなのかなくらいに思ってるんですけど、どう違うんでしょうか??
ということは、select〜values文のパラレル処理はできないということですか? とにかくわたしは大量のinsert〜values文を早く処理させたいです。

76NAME IS NULL2017/09/22(金) 20:52:34.49ID:???
The INSERT VALUES statement is never executed in parallel.
https://docs.oracle.com/database/121/VLDBG/GUID-6626C70C-876C-47A4-8C01-9B66574062D8.htm

77NAME IS NULL2017/09/22(金) 20:58:10.68ID:???
パーティションの話を出したのはチューニングするなら
高い効果が見込めるところから検討すべきって話
もちろんいろんな事情で出来ないとかやっても効果が限定的になりそうって場合もあるけどね

チューニングに必要な情報をまず集めて
最初にいろんな選択肢を出した上でどれから試すか決めないと
パーティションがどうなってるかはわからないけどとりあえずクエリだけ並列化してみるってのは
すぐ試せるだけの力があればいいけど、そうじゃないならアプローチとして微妙

まあ、がんばって

78NAME IS NULL2017/09/22(金) 22:05:28.12ID:???
>>75
は?

79NAME IS NULL2017/09/23(土) 09:42:38.05ID:???
みんな丁寧に相手し過ぎ。
素人過ぎて話にならんレベルだろ。

80NAME IS NULL2017/09/23(土) 13:56:48.38ID:???
皆さまお付き合いありがとうございます。昨日は投げやりなコメントをしてしまいました。言われていることがわかってきたかもしれません。わたしの理解を書かせて頂きます_(._.)_
パラレル処理「alter session後のSQL文が並列にデータにアクセスして処理される」、ダイレクトパスインサート「データベースバッファを経由せずデータファイルへ直接データを登録すること」
わたしがやりたいことは「大量のinsert〜values文を2倍程度早く処理させたい」ので、76さんのサイトに書いてあるように「パラレル処理はむり」で、「insert /append_values/の書き方でダイレクトパスインサートはできる」と理解しました。

>>77
パーティション構成次第でパラレルできるできないという話かと思ってましたが、別の話でパーティション構成を変えることで改善されることもあるという話だったんですね。
わたしはJavaAP開発者なのでインフラ側までは口出すことができず、SQL改修などでできる性能改善をやろうとしてます。1table1000万recordをselectしたりするのでパラレルクエリもいつかは実装できたらなとは思ってます。

81NAME IS NULL2017/09/23(土) 14:19:02.34ID:???
>>80
だからsqlldrでやれや。

ダイレクトもパラレルも比較的簡単にできるから。

82NAME IS NULL2017/09/23(土) 14:38:42.17ID:???
>>81
はい!sqlloaderを検討します。月曜日からsqlloaderを試せるように下調べしてみます。

83NAME IS NULL2017/09/23(土) 14:38:48.77ID:???
>>81
わざわざWebアプリでやってるんだからsqlldrは要件に合わんのだろ
やるにしてもExternal Tableだけど、そういうLOAD系が使える話じゃないんじゃね?

84NAME IS NULL2017/09/23(土) 14:39:37.15ID:???
マジカ。。
それでいいならINSERTとか最初から選択しなくてもよかったんじゃ。。。

85NAME IS NULL2017/09/23(土) 14:51:30.34ID:???
シフトザオラクルなんかソースとして持ち出すとか、よくわからないけど日々ググってコピーして仕事してます臭がくっさいくっさい。

86NAME IS NULL2017/09/23(土) 15:28:35.08ID:???
sqlloaderは難しいですかね・・・。もし実現できるとしても結構な改修量になる上に懸念点も出てくる気がしてるので、避けたい選択肢ではあります。
sqlloaderが難しいとなると、insert文に/append_value/を付加したダイレクトパスインサートにできるくらいでしょうか

>>84
すみません、どこの話に対してのコメントですか?
>>85
否定はしません。。皆さんは公式マニュアルなどを見ながらって感じですか?

87NAME IS NULL2017/09/23(土) 15:49:01.13ID:???
>>86
つっこむデータをcsv等のファイルに落とせるんだったら、後は簡単だろ。

改修する前に、早くなるかどうかの検証するくらいならすぐできるだろ

88NAME IS NULL2017/09/23(土) 16:12:21.67ID:???
まずマニュアル読むというのは基本中の基本だ

89NAME IS NULL2017/09/23(土) 16:15:14.60ID:???
>>87
だよな。
こんな簡単なこともできないのか、とただ呆れるばかりだよ。
改修も簡単。

90NAME IS NULL2017/09/23(土) 16:24:15.31ID:???
>>88
それな!

読まないでネットで質問したり、誰が書いたのかわからんホームページの落書きをよく仕事で使おうとするわ。

客や上司になんて説明すんだろね。

91NAME IS NULL2017/09/23(土) 16:29:23.29ID:???
皆さまありがとうございます。ではsqlloaderを検討してみようと思います。
エラーハンドリングがどうなるのかは気になるところではありますが、まずJavaからsqlloaderを呼び出して正常処理させることを目標に進めてみようと思います。

92NAME IS NULL2017/09/23(土) 17:12:28.14ID:???
みんな最初は素人なんだからもう少し優しくしてやれよ

Orableはマニュアルが間違ってること多々あるんだし
試してみないことには分からないこともよくある

93NAME IS NULL2017/09/23(土) 17:52:48.09ID:???
間違ってることが多々あるのと、見ないのとではかなり違う

94NAME IS NULL2017/09/23(土) 20:04:25.60ID:???
>>92
勘違いにも気づかせてもらい、十分優しく対応して頂けていると思っていて感謝してます_(._.)_

AP開発側にこのような経験ある人はなかなかいなかったり、インフラ側に聞いてもAP実装レベルの話は知らん、という感じだったりで身近に聞ける人がいないのでとても助かってます。

>>93
パット見読みやすい方に逃げている?状態なので、少しずつマニュアルとお友達になっていけるようにします!

95NAME IS NULL2017/09/23(土) 20:34:44.95ID:???
Oracle用語で Google 検索したときに、公式マニュアルの結果が上位に来ないことも問題。
この辺はOracleの努力が足りないと言わざるを得ない。

96NAME IS NULL2017/09/23(土) 21:17:39.64ID:???
バックアップ・リカバリとかの運用設計はインフラ担当がやるのが普通かもしれんが
テーブルをどういう風にパーティショニングすべきかみたいなDB設計は
アプリケーション開発者がやるのが普通だと思ってるんだがそうでもないのかな?

97NAME IS NULL2017/09/23(土) 22:23:16.03ID:???
>>95
そもそもOTNの所から探せってスタンスだしね

98NAME IS NULL2017/09/23(土) 22:40:15.69ID:???
今回はうちの関係者がインフラにいてやりとりできますが、AP開発側とインフラは完全に分かれていてどんな人がインフラやっているかわからなかった時もざらにあります。

現状は・・・インフラ側:こっちが考えた環境設計に文句あんの?AP側:AP作るだけで精一杯だし、APはデプロイとDBにデータ突っ込むだけで良いでしょ?が多いかなと思っていますが、皆さまのところはいかがでしょう?笑

でもOracleは自由度が高いからAPももっと理解して使ってよっていう考えが出てくるのかなとも思ってます。Oracle現場は今回はじめてなもので(^^;

99NAME IS NULL2017/09/24(日) 01:18:12.24ID:pHXxq7aW
SQLLoaderで主キー違いで並列実行すればいいのに。外部表でファイルのめめまテーブルのように見える機能もある。

100NAME IS NULL2017/09/24(日) 01:59:14.11ID:???
アプリのことをAPと略す会社からは
プログラマーのことをPGと略す会社と同じブラック臭がする

(あくまで個人の感想です)

新着レスの表示
レスを投稿する