Oracle 質問総合スレ13 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
U.S.A!!
U.S.A!!
かーもんデータアメリカ!
データを高速にimport
Data Pump >>636
少なくとも、外部結合のみnullが発生するという建前があれば、空文字列がnullになってしまうようなヘンテコな仕様にはならなかっただろう。 >>652
まさかおまえの頭では空文字列とNULLがごっちゃなのか? >>653
俺の頭の中では別物。そのせいでoracle使うときに苦しむ。 INSERT文、UPDATE文等ではシングルクォーテーション2つはNULLとみなす。
値がないことがNULLだから、Oracleは空文字列をNULL値にしている。
空文字列とNULLが同居するRDBMSの方がさらに面倒で、両方が混ざりあったりして、両方想定していないといけなくなる。 値が NULL と非 NULL の場合とで、ケースを区別していることと大差ないような >>657
> 空文字列とNULLが同居するRDBMSの方がさらに面倒で、両方が混ざりあったりして、両方想定していないといけなくなる。
バカには難しいってことか w >>657
そもそも値がないことと、空文字はそもそも違う。
選挙で投票しないのと、白票を投票するぐらい違う。
白票をカウントしない選挙制度と同じくらい雑な仕組み。 その件については白票しかカウントしない選挙制度が妥協の産物なだけやけどな なんか経緯があるのかね
最初に作った人が「こっちの方が便利じゃね?」と思ったとか
逆に
・文字列は空文字、数値はゼロ、日付は0001-01-01 00:00:00を初期値とする
・外部結合で結合結果が存在しない場合初期値とします
とかいうDBがあったらそれはそれで他の言語からデータを取り扱う際便利そう
プログラム言語は基本そっち側だよね >プログラム言語は基本そっち側だよね
だったらヌルポとか発生しないわ >>663
空文字列は空文字列がデータで良いのかどうかという判断が難しくなるので、リレーショナルデータベースではNULL値を採用している。 >>663
外部結合させた場合に発生するNULLは正確には不定値で、値がないというNULLとは少し異なる。 >>667
NULL値てw初心者スレいけよおまえw >>667
リレーショナルデータベースの一般の話ではなく、ORACLEのみの話 >>670
Oracle DatabaseではNULL値(NULL Value)という言葉を使います。Oracle Databaseのマニュアルくらいは見ましょう。 oracleのオプティマイザがアホすぎてなかなかexadataのsmart scanを生かし切れない。
インデックス無しでも必要なデータのみストレージで絞って返すというのが売りなのに、実行計画が悪いと大量データ返して来てHASH結合で一時表領域がパンクすることが多い。
なんかコツある? direct path readになってないんしょ。
インデックスは最小限で、必要に応じてinvisible indexが基本じゃない? Exadataが特別なものだと信じ込んでいるやつが多すぎて仕事でも会話が成立しない。 >>673
普通に索引作って回避してるぞ?
smartscanを過信しすぎるのは禁物。 まぁ、Storage Serverの存在が相当特殊だわな >>678
検索条件によってはそっちの方が普通に早いし。 ストレージサーバーが全てのSQL、データに有効とは言ってないしな
チューニング出来る人がExadataでも必要 デベロッパー、テスターの一人一人に互いに干渉しない全く同じデータベースを提供したいのですがどういった手段が考えられますか?
データ量は開発用に控えめにしてあるのでディスク容量が足りなくなることはないという前提です >>683
Oracle Database Express Edition(OracleDB XE)を使う、
インスタンスを分けるなど
目的に応じて検討 >>683
プラガブルデータベース違いで使い分ける。 >>683
スキーマを人数分複製が一般的だろう。
干渉しないというのが負荷の話でなくデータの話なら。 >>684-686
どうもです
人数分create databaseすることにしました
スキーマで分けるのが確かに簡単かと思ったのですが
アプリが複数のスキーマに依存していて、スキーマ名を明示してしまっている(select * SA.T1, SB.T2)ので、おそらく不可能かなと どの程度のスペック(cpuコア数、メモリサイズ、ディスクサイズ)のサーバに、何人分のデータベースを立てようとしてるの? その感じだと、データベース一つあたりミニマムでどんくらいリソース使うのか検討ついてないでしょ 自社開発ならフリーで製品機能使えるやつがあるんだっけ?
顧客向けは無理だった気がするけど >>687
スキーマをSQLに書いちゃだめだよ。
アプリから他のスキーマ見たい場合、シノニムでやるのが一般的 つまらない質問だけど気になったので質問
LOG という名前のテーブルは問題なく作れて、SQL レベルでは普通に扱えるんですが
PL/SQL で
rec LOG%ROWTYPE;
とか書くとエラーになる
PLS-00310: %ROWTYPE属性の場合、LOGは表、カーソル、カーソル変数である必要があります
LOG の前にスキーマ名を付けて完全修飾にすると問題なく通ります
これは LOG という名前を対数関数 log() かなんかと混同してるせい? >>701
回答がもらえないようで。やはり誰も知らないのか
確かにLOG なんて名前のテーブルは本能的にヤバそうな気がして普通は作らないのかも
途中から関わったプロジェクトでこの名前のテーブルがあって、プロシジャ作っててハマったんだけど
もちろん名前は変えてもらいましたw >>702
本当にそのスキーマにLOGという名前のテーブルが存在していたのか?
スキーマ修飾したら、エラーが発生しないという点がひっかかる。 >>701
たしかにビルトインパッケージのLOGファンクションと判断されたのかもしれない。
データベースオブジェクトの評価順位のうち、ビルドインバッケージの方が先に評価されるなら、言っているような理由かもしれない。 15分程度の間に自分で誤魔化すくらいなら書き込む前に確かめておけよ >>705
構文を後ろからチェックするプログラミング言語は多いんだよ。 >>704
確認してもらったようで どうもでした
やっぱそうなのか、と思って他の関数でも調べてみると
sin、cos とか substr でも同じ現象が起こります
どうやらそういう事みたいですね https://docs.oracle.com/cd/E57425_01/121/SQLRF/sql_elements008.htm#i44213
> データベース・オブジェクトのネーミング規則
> *特に*、SYS_またはORA_で始まる文字をスキーマ・オブジェクト名として使用しないでください。
> また、*SQL組込みファンクションの名前*を、スキーマ・オブジェクトまたは
> ユーザー定義ファンクションの名前として使用しないでください。 >>711
なるほど、ちゃんと書かれてたんですね
じゃ、テーブル名を変えてもらったのは正しかったのか
create table の時点でエラーにせず、ガイドライン的な記述にとどめているのは
それが出来ない政治的な理由がありそうだけど
少なくとも Oracle が問題を認識してることは はっきりしました
ありがとうございました >>713
同感だけど、そういう感覚を持たない人がいるので下っ端が苦労するわけです 以前、表や列といったオブジェクト名に「スペース」が使われてる事例があった。
同様にマルチバイト文字や、大文字・小文字を区別するのも後で悩まされるが、
Oracle が "日本語" のようにダブルクオートで囲まなくても受け付けちゃうのも
問題かもしれない。便利だけどね。 >>715
ORACLE10の頃、日本語項目ダブルクォートで囲まず酷い目にあったのは今でもトラウマ 私たち日本人の、日本国憲法を改正しましょう。
『憲法改正國民投票法』、でググってみてください。
(へいわ)は、勝ち取るものです。拡散も含め、お願い致します。 SQL監視って複雑すぎるSQLは遅くても拾ってくれないのね。見事に騙された。 winx64_12201_databaseの中のsetup.exeをクリックすると、黒い画面のあとにインストーラが起動します。
そこでフリーズしちゃうんだけど理由を教えてください。
Windows10 64bit メモリ8GBでハードウェア要件は満たしています。 >>720
12c Release 2 (12.2.0.1.0) はオレもノートPC (Win10 x64 HomeEd) に入れようとしたら途中で止まった
Release1 (12.1.0.2.0) の方は止まらずイントールできたので、そっちを使ってる >>722
どうもありがとうございました。
試してみたけど、やっぱり駄目でした。
同じPC同じ環境で半年前は普通にインストールできたのに、アンインストールの仕方が悪かったのかな? アプリのサポート屋なので知識不足申し訳ないんですが
Oracle11g→12cに移行してからやけにレスポンスが落ちたので
DB担当に相談してオプティマイザのバージョンを11.2に下げたんですが
それだけで良いもんなんでしょうか むしろオプティマイザ下げて他に影響がないかきになる 1adative系が実行計画改悪するのはよく聞く。
今やoracleも適応統計はデフォルト無効を推奨するナレッジ出してるしな。 オラクルデータベースの資格取ろうと思って、
Downloadしたけどインストールの時点でドツボにはまった(泣) >>730
今、Oracle Database Express Edition 11g Release 2
っていうのをインストール中です。
上手く行くと良いのですが・・・ >>731
11gはもう終わったバージョンなのでとりあえずOracle Databaseってなんぞ?ってのでなければやめといた方がいいと思う
スキーマだったりシノニムだったり基本的なところはそう変わらないけれど
SQLやりたいだけならOracle Live SQLもあるし >>732
とりあえず、マイクロソフトのSQLserver がうまく接続できたのでこっちで勉強してみます。
どうもありがとうございました。 Oracleはこうやって切り捨てられていくんだなぁ
昔ほどパフォーマンス差があるわけでもないし
ユーザーフレンドリーな方に客は流れるよね SQL Serverの方がよっぽど情報がなくて困るけどな。 Oracle11gR1の環境で質問です。
マテリアライズド・ビューとして定義する際にボトルネックになる要素って何かあるでしょうか?
SELECT文自体の実行時間は約30秒ほどなのですか、同内容をマテリアライズド・ビューでCREATEしようとするとSQLを流してから30分以上経っても結果が返ってこない、という現象に遭遇しました。
SQL自体に改善の余地があるのか、環境面に依存するのか、検討がついておらず、確認するべき点があれば教えていただきたいです。 SELECT側は30秒後に表示が始まるというオチではないだろうな マテビューと同じ定義同じインデックスの通常テーブル作ってinsert selectした方が、リフレッシュよりも大分短いなら、マテビュー固有のボトルネックがあるかもね。
まずは切り分け >>736
それだけでは何とも。
AWRレポートとか取ってみて何で待ってるか取り敢えず調べてみたら?
NOLOGGING付けるだけでも改善するかも知れないが・・・。 アンインストールでゴミが残るのをいい加減どうにかして欲しい >>746
ゴミが残らなかったらサポート契約結んで教える事が出来なくなるじゃないか!? Java有料化で基本的にOracle社からは撤退ちゅー そもそもマテリアライズドビューがどういうものか理解しているのか? ■ このスレッドは過去ログ倉庫に格納されています