QUESTION(SQ0902083)
ANSWER
クエリ単体の厳密な実行時間を確認する場合は、パフォーマンス・テスト・ユーティリティを使用することをお勧めします。 SELECT文の実行時間を確認する場合、FETCHTSTを使用します。
FETCHTST
は、SQL AnywhereのSamplesフォルダ内の以下の場所にあります。 SA11 :
\Samples\SQLAnywhere\PerformanceFetch SA10 :
\Samples\SQLAnywhere\PerformanceFetch ASA9 :
\Samples\ASA\PerformanceFetch
実行例 >fetchtst.exe -c "uid=dba;pwd=sql;eng=demo10" query1.sql
実行結果の例 |
Statement 1 (line 1): SELECT
i.ID,i.LineID,i.ProductID,i.Quantity, ... Rows fetched = 1000 PREPARE:
0.000 seconds DESCRIBE: 0.000 seconds OPEN: 0.002 seconds FETCH first
row: 0.050 seconds, 31 I/Os, 618 per second FETCH remaining rows: 0.019
seconds CLOSE: 0.000 seconds DROP: 0.000 seconds Total: 0.072 seconds,
31 I/Os, 427 per second Fetch rate: 1097 rows in 0.070 seconds, 15775.663 per
second |
基本的には上の結果から次の4点を確認します。 OPEN: カーソルのオープンにかかった時間 FETCH first row:
最初のローのフェッチ時間 FETCH remaining rows: 残りのローのフェッチ時間 Total: 全体の処理時間
パフォーマンス・テスト・ユーティリティの詳細につきましては、ユーティリティ付属のreadme.txtをご参照下さい。
【注意】 一度クエリを実行すると、そのクエリで使用されたデータがデータベース・サーバ・キャッシュにキャッシュされることに注意してください。 テーブルなどのデータがデータベース・サーバ・キャッシュされている状態でクエリを実行した場合、初回の実行時間とは大幅に異なる結果が得られることがあります。
この為、連続してパフォーマンスのテストを行う場合は、データベース・サーバ・キャッシュを明示的にクリアしてください。
キャッシュをクリアするには、sa_flush_cache
システム・プロシージャを使用します。
実行例 call sa_flush_cache()
sa_flush_cache
システム・プロシージャの詳細につきましては、以下のオンライン・マニュアルをご参照下さい。
http://www.ianywhere.com/developer/product_manuals/sqlanywhere/1001/ja/html/dbrfja10/rf-sa-flush-cache-system-sysproc.html/rf-sa-flush-cache-system-sysproc.html
|