
SELECTのSQLのパフォーマンスチューニングを行なっています。
例えば、A,B,Cと3本の候補があってA,B,Cの順に速度を見たいとき
B以降はAによるキャッシュを利用して実行するはずなので、
この3つの実行速度がうまく比較できません。
(頻繁に投げられるSQLではないので、アプリ側から投げられるときは
キャッシュにのっていない想定です)
SQLを投げるたびに
ALTER SYSTEM FLUSH BUFFER_CACHE ;
でキャッシュをクリアすれば、3つを比較できるのでしょうが、
運用上の問題でそれもできません。
理想としては
SELECT /*+ NOT_USE_CACHE*/ …
のようにヒント句や
alter sessionなどでキャッシュを使わずにSQLを投げたいのですが、
どのようにしたら実現できるでしょうか?
環境は
9iと11gの環境がありますので、
それぞれで最適な方法がございましたらご教授ください。
よろしくおねがいします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
1つ確認ですが、SQL-AとSQL-BとSQL-C、それぞれの処理速度を厳密に比較したいという事ですよね?
であれば、それぞれのSQLを実行する前に、DBを再起動する必要があると思います。
SQLを実行すれば、どうしてもデータはキャッシュにのってしまいます。
なので、DBを再起動して、完全にまっさらな状態にする必要があります。
「運用上それが出来ない」となれば、その環境と同じ環境を別に用意して、そこでテストを行うしか無いと思います。
ちなみに、No1の回答者さんが示したURLは、OracleBIを使用している場合の説明ですね。
No.2
- 回答日時:
「システムのキャッシングの無効化」を行った場合、該当のSQL内でのキャッシングも無効になる影響は考えられませんか。
例えば、インデックスのRANGEスキャンを行う場合、通常ならルートやブランチブロックはキャシュされますが、キャッシングを全面的に無効にするとDISKアクセスが頻発する気がします。
No.1
- 回答日時:
7.6.1.1 システムのキャッシングの無効化
http://docs.oracle.com/cd/E28389_01/bi.1111/b630 …
この辺は如何でしょうか。
ALTER SYSTEM FLUSH BUFFER_CACHE;
が使えない理由が、キャッシュを後で使うから、とかであった場合、
この方法で一時的にキャッシュ無効化⇒後で有効化でいける気がします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ソフトウェア) googleスプレッドシートのキャッシュを自動で消したい 1 2023/01/30 12:05
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- 財務・会計・経理 この問題の正解をおしえてほしいです。 第1問 損益計算書には営業利益、経常利益等、異なる名前の利益が 1 2023/06/02 05:04
- PHP PHP MySql ページング 2 2022/09/20 06:38
- その他(学校・勉強) この中で間違ってある説明はありますか?詳しい方に教えていただきたいです。 A. 1つのプログラムが複 2 2023/07/14 01:15
- その他(資産運用・投資) 楽天モバイル債が発売になりますが安心安全な運用先でしょうか。 キャッシュが足らないモバイル事業継続で 3 2023/01/29 13:57
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
このQ&Aを見た人はこんなQ&Aも見ています
-
Viewにインデックスは張れますか?
Oracle
-
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
同じSQL文で極端に検索が遅くなる時がある
MySQL
-
-
4
WHERE句の実行順序
Oracle
-
5
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
6
Dirコマンドでフォルダ内ファイルの合計サイズをだすには?(コマンドプロンプトにて)
UNIX・Linux
-
7
Oracleでの文字列連結サイズの上限
Oracle
-
8
PL/SQLで@ファイル名が反応しません
Oracle
-
9
MAX関数を使ってからLEFT JOINしたいのですが・・
PHP
-
10
SQLPLUSで結果を画面に表示しない
Oracle
-
11
SQLServerで文字列の末尾からある位置で取出
SQL Server
-
12
PL/SQLカーソルの2重FORループができません
Oracle
-
13
数値フィールドのワイルドカードについて
PostgreSQL
-
14
GROUP BYを行った後に結合したい。
Oracle
-
15
Oracleのデータ型、NUMBERについて
その他(データベース)
-
16
Statement ignored というエラー
Oracle
-
17
frxファイルの役目
Visual Basic(VBA)
-
18
1回目の実行に3分、2回目の実行に3秒のSQLで1回目を早くする方法ありますか?
MySQL
-
19
OracleのSQL*PLUSで、データが折り返されて見づらいのですが。。。
その他(データベース)
-
20
テーブルタグの中にdivを含めてはダメ?
HTML・CSS
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
キャッシュを使わずにSELECTを...
-
WHERE句の実行順序
-
ヒント句が無効になります
-
WHERE句はJOIN結合前結合後どち...
-
Like文の速度について教えてく...
-
OEMで負荷の少ないSQLの実行計...
-
oracle(SQL)のHINT指定について
-
likeとsubstrの使いわけについて
-
Accessのマクロでモジュールを...
-
日付型カラムへのデータINSERT
-
Statement ignored というエラー
-
sqlplusのspoolで空白行出現
-
ODBCリンクの際にACCESSでは読...
-
【Excel VBA】 WorksheetやRa...
-
Excel VBAで「プログラム実行」...
-
エクセルVBAでUserFormを起動し...
-
callで順に実行されるプロシー...
-
SQLで部分的にGROUP BYしたいとき
-
或るプロシージャの呼び出し元判定
-
Access VBAで行ラベルが定義さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キャッシュを使わずにSELECTを...
-
WHERE句の実行順序
-
likeとsubstrの使いわけについて
-
Like文の速度について教えてく...
-
ヒント句が無効になります
-
WHERE句はJOIN結合前結合後どち...
-
問題解決のストーリーにて PDCA...
-
SQL ORDER BYにおける条件について
-
あいまい検索のパフォーマンス...
-
oracleのanalyzeと処理時間につ...
-
外部結合と等価結合のパフォー...
-
アナライズでほとんどの処理が...
-
実行計画HASH JOIN RIGHT OUTER
-
OEMで負荷の少ないSQLの実行計...
-
データ抽出の速度について
-
Oracleで検索すると、フリーズ...
-
PDCAを回すって?
-
INDEX作成による更新系の影響範囲
-
800万件のテーブル読み込み...
-
Analyzeとは?
おすすめ情報