質問: oracle10g リレーションとパフォーマンス こんにちは 教えてください。 現在.net vb(vs2008)でoracle10gを使用しアプリ開発を行っております。 erツールを使用してdbを構築し使用していますが、画面入力時に処理が重く実装に耐えられない状況です。いったんdbのリレーションやフォーリンキーを外して再度構築した所、パフォーマンスが改善されました。 dbのリレーション(フォーリンキーの設定)はむやみに設定しない方がいいのでしょうか? よろしくお願いします。
回答: 確かに外部キーをつけるとパフォーマンスには影響がでます(登録・更新の可否をチェックする必要があるため)。しかし、外部キーをつけないと整合性が失われるリスクが高いなら、それ以外の整合性維持の手段はすべて外部キーよりも負荷が高くなりますから、つけるべきものにはつけた方がよいと思います。 外部キーを設定しているフィールドにインデックスを張ることでパフォーマンスが向上することもあります。