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も見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
1回目の実行に3分、2回目の実行に3秒のSQLで1回目を早くする方法ありますか?
MySQL
-
SQLPLUSで結果を画面に表示しない
Oracle
-
Viewにインデックスは張れますか?
Oracle
-
-
4
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
5
同じSQL文で極端に検索が遅くなる時がある
MySQL
-
6
CSVファイルの中で、「 , 」カンマを使いたい
その他(コンピューター・テクノロジー)
-
7
テーブルに主キーを作らないデメリットは?
その他(Microsoft Office)
-
8
Winmerge ファイルの中身は同じなのに黄色くなる
その他(OS)
-
9
キャッシュを無効にする方法は?
SQL Server
-
10
Statement ignored というエラー
Oracle
-
11
update文で改行を入れる
Oracle
-
12
PL/SQLでログを確認したい。
Oracle
-
13
Oracleで流したSQLのログを取得できますか?
Oracle
-
14
SQL*Plusで、コマンドの返答を非表示にする方法
Oracle
-
15
Unionの結果全体をOrder By したい。
SQL Server
-
16
Oracleでの文字列連結サイズの上限
Oracle
-
17
WHERE句はJOIN結合前結合後どちらに効くのか
Oracle
-
18
NVLとDECODEのスピード差
Oracle
-
19
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
20
最大バイト数を調べるSQL文を教えてください
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
キャッシュを使わずにSELECTを...
-
likeとsubstrの使いわけについて
-
ヒント句が無効になります
-
あいまい検索のパフォーマンス...
-
Like文の速度について教えてく...
-
【チューニング】インデックス...
-
oracleのanalyzeと処理時間につ...
-
WHERE句はJOIN結合前結合後どち...
-
WHERE句の実行順序
-
問題解決のストーリーにて PDCA...
-
Statement ignored というエラー
-
Accessのマクロでモジュールを...
-
エクセルVBAでUserFormを起動し...
-
ODBCリンクの際にACCESSでは読...
-
PL/SQLカーソルの2重FORループ...
-
VBA プロシージャの名前の取得
-
今日の日付が入った行のデータ...
-
sqlplusのspoolで空白行出現
-
ストアドプロシジャからストア...
-
時間項目を60進数から10進数へ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キャッシュを使わずにSELECTを...
-
likeとsubstrの使いわけについて
-
WHERE句の実行順序
-
Like文の速度について教えてく...
-
WHERE句はJOIN結合前結合後どち...
-
あいまい検索のパフォーマンス...
-
実行計画HASH JOIN RIGHT OUTER
-
ヒント句が無効になります
-
【チューニング】インデックス...
-
ORACLE9i→11gにバージョンアッ...
-
DATE型カラムのインデックスが...
-
問題解決のストーリーにて PDCA...
-
アナライズでほとんどの処理が...
-
TeXの索引作成に関して
-
SQL ORDER BYにおける条件について
-
Oracle 実行計画、統計情報の見方
-
JOINの時のONとWHEREの違いにつ...
-
INDEXヒントとは?
-
DBの実行計画って?
-
800万件のテーブル読み込み...
おすすめ情報