当サイト非推奨機能

ORACLEには様々な機能やパラメータが存在しますが当サイトとして使用を控えたほうがよいと考える機能を以下に記載します。 (もちろん、パラメータの意味やメリット、デメリット等を把握した上で使うのであれば全く問題はありません)

cursor_sharing=similarまたはforce

cursor_sharingをsimilarまたはforceにすることORACLEが自動的にSQLを最適化し、 リテラルで書いたSQLであってもバインド変数を使ってSQLを書いたかのようにハードパースが抑止されパフォーマンスが向上します。 このようにパラメータの効果としては非常に魅力的なものとなっていますが、 残念ながら9iで本パラメータが追加され相当の年月が経過した現時点(2015年4月執筆)であっても相当不具合を引きやすい部類のパラメータとなっています。 リテラルにするとハードパースが多発する可能性があるSQLはパラメータに頼らず必ずバインド変数を用いたSQLで記述するようにしてください。

データベースリンク

データベースリンクを使うと他のDBのデータに対してローカルDBからアクセス可能になります。 これも非常に便利な機能となりますがcursor_sharing同様不具合やトラブルを招きやすいパラメータとなっています。 設計段階で検討可能であれば可能な限り使わない方向で検討してください。 特にマテリアライズドビュー+高速リフレッシュ+データベースリンクの組み合わせは使わないほうがよいと考えます。

バインドピーク

バインドピーク機能とはを参照のこと。

新機能やマイナーな機能、使い方

別にORACLEだけの話ではありませんがほとんどすべてのソフトウエアにおいて新機能やマイナーな機能には不具合が多く潜在しています。 新機能は過去のバージョンでの問題点を解決したものが多く、魅力的なものが多いですが、不具合が潜んでいるかもしれないという認識は持っておいたほうがよいと思います。 また、このほかに避けたほうがよい使い方としてマルチバイトの使用が挙げられます。データに日本語文字を入れるべきではないということではありませんが、 DDL文やその他メタデータに使用する文字は可能な限りマルチバイト文字を使用を避けASCII文字を使用したほうがよいと思います。 マルチバイトはシングルバイトに比べ扱いが難しい為不具合が発生しやすい傾向があるほか、 文字コード変換等でもトラブルのもとになる可能性があるためです。

★ORACLE案件承ります