• 締切済み
  • 困ってます

oracle10g リレーションとパフォーマンス

こんにちは 教えてください。 現在.net vb(VS2008)でORACLE10Gを使用しアプリ開発を行っております。 ERツールを使用してDBを構築し使用していますが、画面入力時に処理が重く実装に耐えられない状況です。いったんDBのリレーションやフォーリンキーを外して再度構築した所、パフォーマンスが改善されました。 DBのリレーション(フォーリンキーの設定)はむやみに設定しない方がいいのでしょうか? よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数121
  • ありがとう数4

みんなの回答

  • 回答No.1

確かに外部キーをつけるとパフォーマンスには影響がでます(登録・更新の可否をチェックする必要があるため)。しかし、外部キーをつけないと整合性が失われるリスクが高いなら、それ以外の整合性維持の手段はすべて外部キーよりも負荷が高くなりますから、つけるべきものにはつけた方がよいと思います。 外部キーを設定しているフィールドにインデックスを張ることでパフォーマンスが向上することもあります。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました。 参考になりました。

関連するQ&A

  • Oracle10gを実際に運用してみたい

    質問させて頂きます。 DB運用経験を積むために何らかのシステムを構築し、 自宅で運用したいと考えています。 目的はあくまで「Oracle10g運用経験」です。 勤務先で将来Oracle10g運用等を担当する見通しです。 「本より実際に動かさないと意味が無いハズ」と考えました 自宅でOracle10gと実際に利用できるシステム(or構築ガイド)  ・DB:Oracle10g ExpressEdition  ・OS:Windows2000  ・言語や他ソフト(Apache,PHPなど)の追加は問いません  ・無償が望ましいです  ・WEBの使用は必須では無いです  ・例えばLogが良く溜まるシステムは運用経験向き?等 はありませんでしょうか? 宜しくお願い致します。

  • oracle10gと9iの違いについて

    お世話様です。 最近、DBサーバをoracle9iからoracle10gに変えることになったのですが、 oracle9iで select LEVEL, 項目1, 項目2 FROM テーブル1 のSQLが動いていたのですが、 oracle10gでは、このSQLが動かなくなり、 connect by区を指定するようにエラーが出てくるようになってしまいました。 oracleのバージョンによって、動かなくなると言うことはあるのでしょうか? それともORACLEの設定を変更すると動くようになるのでしょうか。 ご教授よろしくお願い致します。

  • Oracle9iからOracle10gへ変更

    Oracle9iからOracle10gへデータベースを変えようとしています。 データベースのみの変更のためアプリには手を入れなくても動くだろうと安易に考えていますが 何か変更しなければいけないところ(例:ロジックやコントロール)はあるのでしょうか? [現在の環境] WindowsXPPro Oracle9i VB6 SP5 [今後の環境] WIndows7Pro Oracle10g VB6 SP5 補足) VBフォーム上にORADCコンポーネントを使用してグリッドにDB情報を表示しています。 このあたりのコントロールもそのまま使用することはできるのでしょうか? ご存知の方ご教授いただければと思います。

  • ORACLEのアクセス

    oracle10gで構築したDBをoracle9iのクライアントからアクセス可能でしょうか。(SQLを参照したりVBで作成しらプログラムからODBC/OLE形式でアクセスする)

  • Oracle 10g (Linux)

    Oracle 10gについて教えてください。 OS:RHEL5 Oracle 10g R2 まったくの素人なのですがRMANについて教えてください Oracleのバックアップでサードパーティのソフトでは バックアップソフトを使用する際、ARCHIVELOGは必須と 書いてあるのとRMANが必須と書いてあるのとそれぞれあり RMANが必須の場合は設定はどこをいじればいいのか というのがよくわかりません。 Oracleインストール時に設定はするまたはされるものなのでしょうか?

  • Oracle 10g以降 ユーザーインターフェース

    質問いたします。 Oracle 10gの正規版(やすいもの)を買って Oracleを使用するつもりなのですが、 (1)グラフィカルユーザーインターフェース SQL Server 2000やAccessのような、SQL(SQLServerではSelect文) をGUIで作成できる機能はOracle10g以降では提供されているのでしょか? (会社ではOracleのDBは扱ったことはありますが、Accessからの リンクテーブルやVB.Netからのアクセスが主、直接は操作していません)あるいは、GUIインターフェースで操作できるものは Oracleではオプションで買うことになるのでしょうか? (2)日本語名 SQL Server 2000やAccessでは日本語名称が使用できますが、 MySQLやPostgresは英文字(日本語で作ったことがない)しかし要したことがありません。 Oracle 10g以降では日本語名称は使用できるでしょうか? ※おそらく、Unicodeかなんかの関係でタブーではあると思いますが。 よろしくお願いします。

  • Oracle10g Standard のチューニングについて

    自社開発したソフトのデータベースをOracle9iから10gへ移行してから以前に比べ画面の切替速度が遅くなってしまいました。パフォーマンス向上の設定についてご存知の方どなたかご教授下さい。

  • オラクル10g,9iのクライアントを入れたましたが、oracleホームが一つしかありません。

    オラクルの10gクライアントが入っているところへ、 9iのクライアントをインストールしました。 VBの OracleInProcSever.XOraSession オブジェクトを使い、 .DbOpenDataBaseメソッド利用すると、 10gの設定を見ているようで、9iの方の設定は参照されません。 ツールのhome selector を利用してみると、 「オラクルホームが一つしかない」という感じの メッセージが表示されます。 レジストリでは、ホームの設定はoo4oの方だけ10g に設定されているようです。 何か、VBの中で9iのクライアントを利用するように設定する方法はありませんでしょうか? 10gで9iのDBにバインドした設定ができればいいのですが、接続したときにバージョンが違うといわれてしまいます。 宜しくお願い致します。

  • Oracle10gのデータベースの移行について

    Oracle10gのデータベースの移行について質問です。 Oracle10g が稼動しているサーバ機があります。 老朽化の為、新しいハードウェアへ入れ替える事になりました。 OSは、入れ替え前も入れ替え後もWindows Server 2003です。  DB: Oracle10g → Oracle10g  OS: Windows Server 2003 → Windows Server 2003 現行のサーバ上では4つのインスタンスが稼動しています。 新しいサーバ上に、同じ構成でそのまま移行する方法を検討していますが、下記のような方法で大丈夫なものでしょうか? (1)新しいサーバ上にOracle10gを初期データベースなしでインストールする (2)新しいサーバ上で新規のOracleインスタンスを4つ作成する (ORADIMツールを使用) (3)現行のサーバ上の各インスタンス・Oracle関連サービスを停止し、オフラインでデータベース関連のファイルのバックアップを取得する (4)現行のサーバから、新しいサーバへ、オフラインで取得したバックアップファイルを転送する (5)新しいサーバ上の各インスタンス・Oracle関連サービスを停止する (6)新しいサーバ上から、(3)で取得したファイルと同じファイルを削除する (7)新しいサーバ上で、バックアップしたファイルを現行のサーバと同じ位置に配置する (8)新しいサーバ上のOracle関連サービスと各インスタンスを起動し、動作を確認する どなたか、回答宜しくお願い致します。

  • Oracle10g キャッシュヒット率について

    Linuxサーバー(Red Hat Enterprise Linux 5.5)にOracle10g(10.2.0.4)をインストールしたのですが、パフォーマンスの問題で、バッファ・キャッシュ・ヒット率が90%を下回っており、まずはこれを解決する必要があるとのことで、少し調べ始めたのですが、10gではsga_targetで自動管理できるということを知りました。 最終目的は、パフォーマンス最適化を目指していますが、そのために確認しておくべき内容および設定方法を教えてください(あるいは回答にマッチしたサイトがあれば)。sga_targetを攻略すれば達成できるのでしょうか? 当面の目的はバッファ・キャッシュ・ヒット率を上げることですが、どうすればよいでしょうか? Oracleド素人ですので、コマンドベースで教えていただけると助かります(^^; よろしくお願いします。