• ベストアンサー

Oracleのトランスフォーマについて質問です。

Oracleの10g以降?には、トランスフォーマ (発行されたSQLを、自動で効率の良いSQLに変換する)という処理が存在します。 そこで、このトランスフォーマについて質問です。 (1)変換前と変換後のSQLを見る方法はありますか?  ※tkprofでトレースを取得すれば、みれたことがあるような気がするのですが・・・ (2)トランスフォーマを行わないようにするための、初期化パラメタなどはありますか? ネットで検索してみても、関係無い方のトランスフォーマしか出てこなくて困ってます。 ご存じの方がいましたら教えてください。

  • Oracle
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

トランスフォーマという言葉は聞いたこと無いのですが、「自動SQLチューニング」という機能は存在します。 参考URL : http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19207-02/sql_tune.htm >(1)変換前と変換後のSQLを見る方法はありますか? →EnterpriseManagerを使用すればGUIで簡単に見られます。  また、コマンドラインで取得する事も可能です。 >(2)トランスフォーマを行わないようにするための、初期化パラメタなどはありますか? →自動SQLチューニングは、「このようにしたらどうですか?」というアドバイスをOracle側が行ってくれるのであり、それを実際に受け入れるかどうかは管理者が決定します。また、自動SQLチューニング機能は動的に開始・終了が出来るので、初期化パラメータは存在しません。 まったく関係ない回答だったらスミマセン。。。

triplane26
質問者

お礼

ありがとうございます! お礼が遅くなり申し訳ありません。 (というか、誰からも回答が無いため、諦めてました) さっそく試してみます。 なんとなく解決できそうな気がします。

関連するQ&A

  • oracle sequence

    oracleのシーケンスでdual表からselect文のnextvalで取得したものをインサート したいのですが、ループ内で上記処理を複数回行ったときに、値が一回目以降 更新されずに困っています。 例) for (i=0;i < 5){ (1)セレクト文発行しシーケンスを取得。 (2)取得したシーケンスを変数にセット (3)インサート実行(主キーに取得したシーケンスをセット) } こんな感じで実行したときに、はじめはシーケンスが+1されますが、 それ以降シーケンスが増加しません。そのため、重複エラーが発生してしまいます。。。 どのように対処したらよいのかまったく見当がつきません。 大変申し訳ないのですが、ご教示いただきたくよろしくお願い申し上げます。

  • VB&ORACLEのパフォーマンス

    知っている方がいたら教えて下さい。 VBにて、OO4OでORACLEに接続し、マスタ存在のチェック(テーブル数:10テーブル、チェックデータ数:10000件)を行うとします。 下記の2つの処理では、1の方が速度が早いという認識だったのですが、実際のところどうなのでしょうか? また、どの位の差が出るのでしょうか? 1.ORACLEのストアドを作成し、チェック処理を行う。 2.VBより、SQL文を10回(テーブル数)発行し、チェック処理を行う。 テーブル数、データ数は特に気にしませんので、上記のような変更を行った方がいらしたら、どの位の速度改善になったのか、参考の為に教えて下さい。 よろしくお願いします。

  • javaでのOracleのデータ登録の際の文字化け

    Windows2000上でjavaでの開発を行っています。 javaからOracle(OSはUnixだと思います)へデータを更新する際 「―」(全角のダッシュ」が「?」となって登録されてしまいます。 SQLを発行する時は「―」は文字化けしていません。 処理終了後テーブル内容を確認すると 「?」となって登録されています。 CSE(Common SQL Environment)でデータを更新したところ 文字化けは起こらず正しく「―」が登録されました。 javaで何か文字コード変換等を行う必要があると思うのですが 方法がわかりません。 ご存知の方がいらっしゃいましたら、よろしくお願いします。

    • ベストアンサー
    • Java
  • java1.8+butterfly+oracle

    こんにちわ。 私は今、java1.8から Butterfly Persistenceを使って oracle11gにアクセスするwebシステムを作っています。 実は困ったことが発生しています。 「 ・4テーブルを結合してSELECTを掛ける ・2回目の操作以降、取得できなくなるテーブルがある。 (そのテーブルの情報が全てnullになる) ・クエリ発行前にブレークポイントで一旦止めてステップ実行すると正常に取得する。 ・クエリ発行後にブレークポイントを設定するとやはりnullになっているが、そのまま、eclipseの式ビューにクエリを発行してる式を入れると正常に取得する。 ・クエリ発行の直前にThred.sleep(2000) を入れると何度やってもセレクトが成功する。(上手くいく、nullにならない) 」 です。 ドライバはoci 64bit butterflyのデータベースマネージャーを使用しています。 知りたい事。 何故取得できないテーブルがあるのか? 何故Thred.sleepを入れると取得できる様になるのか? 経緯  このシステムは、もともとmySQLで作られていて、諸事情によりOracleに変換する必要が出てきました。 その変換係に私が指名されました。 mySQLのlongTextを使っていたので、 最初はOracleのLongにしていました。 最初はbutterflyのオブジェクトDaoで1テーブル毎に取得したのですが 1テーブルなぜか検索結果が0になりした。 そこでコネクションを取得して プリペアドステートメントに切り替えたのですが 改善せず いろいろ調べると jdbcドライバでlongを使うと、 最初に読まなきゃならないとかいろいろ成約があり、ORMapperでlongが怪しいと思い、 そこまで長い文字列入らないと思われるので varchar2(4000)にしました。 が、解決しません。 連続して複数のテーブルにセレクトするのが悪いと思い、 テーブルを結合させて butterflyのマップオブジェクトで取得したのですが やはり該当テーブルがnullになりました。 その時はthinドライバだったので、 ociなら大丈夫かと思いociに変換。 (と言いますのも、試験的に該当箇所をasp.net c#に移植し、全く同じセレクト文を投げると全く問題なく動き、 それがoci接続なのでocIにすれば行けると思いました。 asp.netとc#なら問題なかったのでjavaカテゴリに来ました) しましたが上記のとおりです。 javaVMのメモリが不足したかと思い eclipseからtomcatのメモリを1024mに設定しましたが解決せず。 どなたか似たような現象に遭遇した方や 心当たり有る方いますでしょうか?

    • ベストアンサー
    • Java
  • オラクルマスターのブロンズ

    オラクルの勉強をしようと思っています。 オラクルマスターのブロンズの勉強をしようと思って本屋に行ったのですが、「SQL基礎I」と「DBA11g」の2種類がありビックリしました。 基本情報処理の「午前」と「午後」のように、ブロンズの試験も「SQL基礎I」と「DBA11g」の両方に合格しないといけないのでしょうか? また、受けるならやっぱり新しいバージョンのほうがよいのでしょうか?

  • オラクルマスター(Gold)2科目の受験順序について

    先日、オラクルマスター(Silver)を取得して、次はGoldに挑戦しようと思っています。 ご承知のようにGold取得のためには次の2科目に合格をする必要があります。 (1)「PL/SQL」(1Q0-007J) (2)「DBA(Oracle8i)」(1Z0-023J) 2科目同時に受験はきつい(学習上も経済的にも)ので順番に勉強しようと思います。 そこで教えていただきたいのが、効率的に勉強(合格)していくためには、 どういう順番に受験するのがよいか、ということです。 ちなみに、今までは、SQL、Oracle入門の順に受験してきました。 どうぞアドバイスをよろしくお願いいたします。

  • oracle master 10g 11gについて

    oracle master 10g 11gについて oracle master bronzeを取得しようと思うのですが 先日知り合いの方から10gのDBAの参考書・問題集をもらって 10gのsqlの参考書・問題集を自分で買いました。 でもやっぱり11gを受けたほうが良いのかなと思ってきて。 どっち受けた方が良いんでしょうか? 11g受けるなら、dbaはともかくsqlは自分で買ったのでこいつで 勉強したいのですが。sqlは10g用の参考書・問題集で11gに対応できますかね? DBAはやっぱり11g用の買わないとダメですかね? あと、DBAとsqlの受ける順番ってどちらからの方が良いとかありますか? 宜しくお願いします。

  • Oracle Bronze資格取得に向けて

    業界経験1年経ちました。使われPGの一人でございます。 すでに一現場が終え(約8ヶ月程)、なんだかんだがあって・・・・・今年の12月末にOracleBronzeの資格を受けようと思います。 試験日までの約2ヶ月半、まず実際にデータベースのインストールから始め、Oracleとはなにかから始めようと思います。(無謀なのは承知です) ここ最近、bronzeを取得した方で、当時どのような勉強をして試験に臨まれ合格したかお教え願いたいと思います。効率よく学習する方法をご教授願いたいです。 ちなみにOracleの知識として、基本であるSQLコマンドが打てるぐらいです。(引いちゃうと思いますが・・・・・)

  • Oracleへのリンクサーバー設定について

    お世話になります。 下記環境におきまして、SQL ServerよりOracleへリンクサーバーを作成しようとしたところ、 「リンクサーバー"XXX"のOLE DB プロバイダ"MSDAORA"のデータソースオブジェクトを初期化できません。 リンクサーバー"XXX"のOLE DB プロバイダ"MSDAORA"から、メッセージ"Oracle"クライアントと ネットワークコンポーネントが見つかりません。これらのコンポーネントはOracle Corporationから提供され、 Oracle Version 7.3.3(またはそれ以降)のクライアント ソフトウェアの一部としてインストールされます。 プロバイダは、これらのコンポーネントがインストールされるまで機能しません。"が返されました。 (Microsoft SQL Server,エラー:7303)」 となり、作成に失敗してしまいます。 SQL Serverには10gのOracleクライアントをインストールしてあるのですが、原因がわかりません。 どなたか、同じ原因を経験され、解決された方はいらっしゃいますか。 もし、お分かりでしたら、ご教授頂きたいのですが。 よろしくお願いいたします。 尚、SQL Serverは運用の関係上、Oracleクライアントインストール後、再起動は行っておりません。 環境 OS:Windows2003 DB:SQL Server 2005 Oracle:10g

  • C言語とオラクル

    こんにちは、初心者と申します。 C言語でオラクルに接続し、 SQLをなげて、データを取得、更新、削除を して切断するながれはどうすればいいのでしょうか? ご親切の方がいらっしゃいましたら、教えてください。 『ここを参照してください』などURLでもかまいません。 お忙しいところご迷惑をおかけしますが宜しくお願い致します。