oracleに関するtu2jun2のブックマーク (2)

  • パフォーマンスを向上させるSQLの記述法

    バインド変数化による解析情報の共有 前述の例1のようなSQLでは、異なる値を指定した処理が複数回行われた場合、WHERE句の条件列の値がリテラルで指定されているため(WHERE s_suppkey=1の部分)、改行の位置などを統一しただけでは同一のSQLとして解析されません。このような場合には、リテラル部分にバインド変数を使用することでSQLの記述を統一し、HARD PARSEを抑制することができます。 リテラルを使用したSQLとバインド変数を使用したSQLを1万回繰り返し行った場合にどのような違いが出るかを確認します。図2はリテラルで記述したSQLを実行、図3はバインド変数を使用したSQLを実行して取得したSQLトレース内のリカーシブコールに関する結果です。HARD PARSEの発生の有無によってリカーシブコールの発生回数に違いが現れています。 図2、図3の「Execute」はともに10

    パフォーマンスを向上させるSQLの記述法
    tu2jun2
    tu2jun2 2009/03/24
    バインド変数
  • 索引を作成したのにパフォーマンスが悪いケース

    連載では、Oracleデータベースのパフォーマンス・チューニングの中から、特にSQLのチューニングに注目して、実践レベルの手法を解説する。読者はOracleデータベースのアーキテクチャを理解し、運用管理の実務経験を積んでいることが望ましい。対象とするバージョンは現状で広く使われているOracle9iの機能を基とするが、Oracle 10gで有効な情報も随時紹介していく。(編集局) 連載目次 前回の「パフォーマンスを向上させるSQLの記述法」では、SQLの記述方法を統一することのメリットについて説明しました。SQLの処理ステップを理解し、記述方法を統一することがパフォーマンスへも大きく影響することが理解できたと思います。今回は、索引を使用したデータアクセス方法に絞って、索引を使用するためのSQLの記述方法や、索引を使用した検索時の注意点について説明します。 索引を使用できないケース 「索

    索引を作成したのにパフォーマンスが悪いケース
    tu2jun2
    tu2jun2 2009/03/24
    SQLチューニング
  • 1