X



トップページDB@2ch掲示板
1002コメント306KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001NAME IS NULL
垢版 |
2017/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
0002NAME IS NULL
垢版 |
2017/08/12(土) 12:21:32.68ID:???
◆My Oracle Support
ttp://support.oracle.com/
0003NAME IS NULL
垢版 |
2017/08/12(土) 12:38:31.52ID:???
7から使っている僕が一番Oracleを上手く使えるんだ...。
折角見つけたバッドノウハウはブログで書かないとダメなんだ...。
0004NAME IS NULL
垢版 |
2017/08/12(土) 12:59:25.39ID:4ORY6QJr
バージョンごとにいろいろ違うのにOracle 7から使っていると言ってるあとりがもうあれ。
0005NAME IS NULL
垢版 |
2017/08/12(土) 13:01:48.99ID:???
2ちゃんの年齢層的には7から使ってるのは普通
0006NAME IS NULL
垢版 |
2017/08/12(土) 13:19:17.41ID:???
ごめん10gからだわ
0007NAME IS NULL
垢版 |
2017/08/12(土) 13:25:51.62ID:???
若いとか羨ましい
若さだけは金で買えないからな
0008NAME IS NULL
垢版 |
2017/08/12(土) 14:36:34.69ID:4ORY6QJr
Oracle7の知識のなんていまとなっては不要。昔のバージョンの知識を新しいバージョンにもあてはめたり、間違った知識で言われるのも迷惑なんだよな。
0010NAME IS NULL
垢版 |
2017/08/13(日) 00:22:43.86ID:???
DEFERRED_SEGMENT_CREATION=TRUEでエクステントが作られていなくって
exp出来なかったというオチだなw
0011NAME IS NULL
垢版 |
2017/08/13(日) 00:54:19.33ID:???
それと勘違いされそうだったからテーブルにレコードは入ってるって書いたんだよ
あとその設定は元からfalseにしてあるよ
0012NAME IS NULL
垢版 |
2017/08/13(日) 02:10:56.50ID:???
はいはい、ブログが書けて良かったね( ´,_ゝ`)プッ
0013NAME IS NULL
垢版 |
2017/08/13(日) 08:26:06.92ID:???
まさかsysにオブジェクトでも作ってたか?w
0014NAME IS NULL
垢版 |
2017/08/13(日) 08:35:27.08ID:???
いちいち否定するのも面倒だからブログに帰るわ
おまいらの知識はその程度と分かったし
0015NAME IS NULL
垢版 |
2017/08/13(日) 09:04:10.32ID:BFCKA3Fk
>>11
レコードがあるかどうかではないだろ
0016NAME IS NULL
垢版 |
2017/08/13(日) 09:17:35.22ID:???
>>14
もう二度とこんな所来るんじゃねぇぞwww
0017NAME IS NULL
垢版 |
2017/08/13(日) 19:16:21.01ID:???
ブログ晒そうぜ
2chで馬鹿な質問してたってな
0018NAME IS NULL
垢版 |
2017/08/13(日) 22:10:27.98ID:???
ブログ特定したら全然大した事じゃなかったてバレるから今頃((((;゚Д゚))))ガクガクブルブル
0019NAME IS NULL
垢版 |
2017/08/14(月) 21:36:44.12ID:???
GIインストールしたあと、クラスタ名を確認するのって、どーすりゃいいんだ?
0021NAME IS NULL
垢版 |
2017/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>
0023NAME IS NULL
垢版 |
2017/09/11(月) 17:17:46.31ID:???
適当にマテリアライズドビューログクリエイトしたらEXPでora-1455でしっぱいするんやがなんで?expdpならいく…
0024NAME IS NULL
垢版 |
2017/09/12(火) 19:03:22.58ID:???
ここのところOracle関係でワクワクするニュースが聞こえてこない。
うちの会社じゃOracleは今やリスク要因になってるよ。ライセンス体系に関して
バージョンアップやクラウド対応で顧客に迷惑を掛けるケースが増えてきた。
0025NAME IS NULL
垢版 |
2017/09/13(水) 18:08:51.04ID:???
>>23
11g以降の通常業務でのexpはサポート外。
0026NAME IS NULL
垢版 |
2017/09/13(水) 19:52:13.51ID:???
俺は開発ベンダだけど、通常の案件はOracleで提案はしない
Oracleを使うのは顧客から指定がある場合のみ
従って何か問題があった場合は、基本的に顧客の責任
0027NAME IS NULL
垢版 |
2017/09/19(火) 10:28:19.92ID:???
質問させてください。

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

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

よろしくお願いします。
0028NAME IS NULL
垢版 |
2017/09/19(火) 11:04:41.23ID:???
セキュリティを理由にOracle入れたがる奴に限って非推奨な構文使ってたり構成自体が古かったりガバガバなのはなんで?
0030NAME IS NULL
垢版 |
2017/09/19(火) 11:16:17.99ID:???
>>28
自分で面倒見るの辛くなって高機能DBMSなら楽できるだろうという思い込みじゃね
0031NAME IS NULL
垢版 |
2017/09/19(火) 11:32:16.93ID:???
>>29
ググッたけど結局できるのかがパッと判断できませんでした(`д´;)クアッ
引き続き調べますが、もうちょっとヒント頂けると助かります。
0032NAME IS NULL
垢版 |
2017/09/19(火) 12:06:42.29ID:???
>>27
そもそもASM上のファイルをリネームするってどんな状況よ?
ACFSでも使っているのか?
素のASMならasmcmdからやる方が遥かに楽。
0033NAME IS NULL
垢版 |
2017/09/19(火) 13:15:46.88ID:???
>>32
情報を足しますと、expdpで作られるダンプをasm上に置くことが決まってます。なぜasm上に置くかは正直わかってなく、環境側からの指定です。クラスタしてますがacfsを使っているのかはわかりません。要件の関係で存在確認やリネームが必要です。

unixサーバなのですが、シェルでやっちゃうしかないですかね〜って話になりつつありますが、出来るだけオラクルの機能でどうにかしたいです。
0034NAME IS NULL
垢版 |
2017/09/19(火) 23:37:34.52ID:???
>>33
そもそもACFSでない素のasm上のファイルはリネーム効かないぞ?
単にaliasが代わるだけだ。
そんな使い勝手の悪いものの上に良くダンプファイル置く気になんかなるな。
0035NAME IS NULL
垢版 |
2017/09/19(火) 23:54:04.39ID:???
>>34
コメントありがとうございます。
まじですか・・・オラクル詳しいであろう環境の人が決めたこともありそれがベターなんだろうと思っていましたが。。素人なりに調べ直してみますm(_ _)m
0036NAME IS NULL
垢版 |
2017/09/19(火) 23:59:12.01ID:???
>>35
素直にACFSもしくはNFSファイル上に置け。
そんなシステム要件、クソだ。
0037NAME IS NULL
垢版 |
2017/09/20(水) 00:35:21.11ID:efa79eqb
>>35
オラクル社の人間はASMを使わせたいからそういう展開になる。
0038NAME IS NULL
垢版 |
2017/09/20(水) 02:14:38.64ID:???
>>36
NFSはセキュリティ要件的に微妙ってことで使用NGになり、ASMならOKって流れがあった記憶があります。ACFS調べてみます!
0039NAME IS NULL
垢版 |
2017/09/20(水) 02:39:50.67ID:???
>>38
ACFSが嫌ならDBFSだな。
PL/SQLとの親和性も高いぞ。
0040NAME IS NULL
垢版 |
2017/09/20(水) 09:24:25.57ID:???
>>39
根本的な疑問なのですが、acfsやdbfsを使わないとasm上のファイルは操作できないものなのでしょうか?
asmはソフトなので、asmの管理配下はインターフェースがあるacfsやdbfsじゃないと操作できないということですか?

逆に言うとasmかdbfsを使うか、asmをやめるかのどちらしかないということなのでしょうか。
0041NAME IS NULL
垢版 |
2017/09/20(水) 11:54:51.19ID:???
>>40
そもそもasmが特殊なrawデバイスみたいなもんだから、ファイルのリネームなどに対応していない。
削除や移動ならまだ何とかなるけどな。

acfsやdbfsはO/Sレベルでマウント出来るから、後は普通にO/Sコマンドが通る。
0042NAME IS NULL
垢版 |
2017/09/20(水) 12:42:36.18ID:???
dbfs使ったことないけど、自身の中に自身のバックアップ置くって推奨されるやり方じゃない気がするね。
0043NAME IS NULL
垢版 |
2017/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以上になってくれないのでしょうか?
0044NAME IS NULL
垢版 |
2017/09/20(水) 13:53:25.84ID:???
ちなみにパラレル化させた方が早くなるのかなと考えてるinsertは、values句を使った単純insert文です。
0045NAME IS NULL
垢版 |
2017/09/20(水) 21:53:30.06ID:???
>>43
どうしても二世代をASM上でキープしたいのなら、別ディレクトリ切ってそっちにファイルを
移動とかだろうね。

パラレルDMLはトランザクションの最初でなおかつ唯一である必要がある。
つまり先にupdateなりしていたら、コミットしていなければ後続は全てシリアルになる。
0046NAME IS NULL
垢版 |
2017/09/20(水) 21:54:28.89ID:???
>>42
そうだろうね。
後はテープなり何なりにダンプを落とすかだね。
0047NAME IS NULL
垢版 |
2017/09/20(水) 22:26:17.93ID:???
>>45
ググって見直してみたら確かにそう書いてありました。何となくなるほどと思っても、Javaの実装にどう当てはめて考えれば良いか難しいです。。

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

>>46
今日相談した結果、セキュリティ要件の問題はあるかもしれないけどやっぱりNFSでやらせてもらえないか確認しようってことになりました。NFSでやることになると、apサーバのシェルからsqlplusでログイン後クライアント経由でファンクションを呼ぶことになります。
0048NAME IS NULL
垢版 |
2017/09/20(水) 23:17:12.33ID:???
バルクインサートは?
0049NAME IS NULL
垢版 |
2017/09/20(水) 23:40:12.13ID:???
>>48
それは既にやってまして、mybatisのbatch insert(リストに貯めてflush呼ぶと一気に投げる)というのを使ってます!

正直それを使ってると、どう投げていてどういう理由で早いのかは理解できてないのですが。。(調べたけど見つからず)
0050NAME IS NULL
垢版 |
2017/09/21(木) 00:28:44.31ID:???
>>47
DBA的には嫌だけど、12cだったらAPPENDヒント使って、常に使用ブロックの上側に
書き込ませる様にすれば、言ってみればダイレクトインサートを使った時と同じ動きと
なるから、パフォーマンスが改善する事もあるみたいだな。
0051NAME IS NULL
垢版 |
2017/09/21(木) 01:03:44.00ID:???
Webアプリで何千万ものインサートって
なかなかアクロバティックなシステムだね
0052NAME IS NULL
垢版 |
2017/09/21(木) 01:19:36.62ID:???
何千万のインサートなら、バッチ処理として、sqlloaderでダイレクトパスインサートするのが一番早い気がする
0053NAME IS NULL
垢版 |
2017/09/21(木) 05:16:58.85ID:???
>>51
しかも出来上がってるものを性能改善しろだなんて、えーって感じです笑

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

csv出力できたとして、values句を使ったinsert文なのでcsvに書かれているinsert文にヒント句付ければ良いのでしょうか。。でもヒント句が出てくるとなるとパラレル処理の話が出てくる、、?
0054NAME IS NULL
垢版 |
2017/09/21(木) 07:06:51.65ID:???
いや、insert文じゃなくて普通のcsvファイルが必要。

csvのどの項目がどの列かってのは、sqlloaderの制御ファイルで指定する。ダイレクトパスとかの指定は、sqlloaderにオプションで渡すか、制御ファイルに記載する。
0055NAME IS NULL
垢版 |
2017/09/21(木) 09:44:16.38ID:???
>>54
一度だけ試したことはあったのですが、、全然違いましたね笑
やるとしたらinsertしたいテーブル分、csvファイルと制御ファイルのセットが必要でしょうか。。?

昨日一昨日ご相談した、asm/acfsについては環境の人に聞くとNFSにさせてもらうしかなさそうだねと言われました。
acfsがベターなのですが、今は暗号キーを置く場所として存在してるだけでapが何ギガものファイルを置く想定などないため、大きめの再構築が必要になるし無理!とのことでした。
ちなみにasmにはdb構成ファイルやdbバックアップ用?のダンプファイルなどを置くので領域はたくさんあるとのことでしたが、dba側の大事なファイルが入ってるasmをapが使うのは違うかねぇという話でした。
0056NAME IS NULL
垢版 |
2017/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
0058NAME IS NULL
垢版 |
2017/09/21(木) 15:01:03.35ID:???
パラレルになるかどうかは
まずはEXPLAINで確認したら?
0059NAME IS NULL
垢版 |
2017/09/21(木) 20:12:50.72ID:???
>>57
まだお試しなので1行でやってます!

>>58
実行計画とったところno pdml because no partitionみたいなエラーが出てました!実行計画はこういうのも教えてくれるんですね☆
このテスト環境は無理なんだと判断し、本番環境で試したらpdmlの結果が1になりました\(^^)/ありがとうございます!明日処理を組み込んで次の段階を試してみます!
0060NAME IS NULL
垢版 |
2017/09/22(金) 01:11:44.64ID:???
>>59
>まだお試しなので1行でやってます!

おいーーーー!!!
0061NAME IS NULL
垢版 |
2017/09/22(金) 02:28:22.20ID:???
>>59
一行をどうやってパラレル処理するんだよ?
0062NAME IS NULL
垢版 |
2017/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
0063NAME IS NULL
垢版 |
2017/09/22(金) 12:25:22.45ID:???
なんかそれだとjava的には一行ずつ渡してる感じじゃね?
そもそもinsertのパラレル化処理なんて、別テーブルから一気に読み込んだりするぐらいしないと効果は体感出来ないと思うぞ?
0064NAME IS NULL
垢版 |
2017/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って自動パラレル設定のことぽくてあまり関係なさそうだし、もう自分の中で打つ手がない状態です・・・。自動パラレル設定を検討した方が良いということなのでしょうか。
0065NAME IS NULL
垢版 |
2017/09/22(金) 14:48:06.27ID:1itx4Kq+
>>614
insert valuesは一行インサートだからパラレル化できないよっていってるんじゃないの?

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

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

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

それがそうだとしたら、なぜ11gからはinsert〜valuesも対応しはじめたのか。。これが出来るとしても検索ありのものとは、違う理屈で早くなったということなのかなと思いはじめました。
0069NAME IS NULL
垢版 |
2017/09/22(金) 17:38:23.58ID:???
メモリに一時テーブル作ってからINSERT SELECTしてみればいいんじゃないの

あとテーブルのパーティショニングはちゃんとやってるのかな?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況