OLAP環境のいくつかの非常に大きなテーブルでいくつかの集計クエリを実行しています。現在、200 MB/sのディスクIOでボトルネックになっています。
これらのクエリは、92GBのRAMを搭載したマシンで実行しています。基本的に、実行前にテーブル全体をRAMにロードするようにSQLに指示するSQLヒントをクエリに書き込むことができますか?
何かのようなもの:
(ramdisk)を使用してmyTableから*を選択します
MSTSQLを使用しています。
OLAP環境のいくつかの非常に大きなテーブルでいくつかの集計クエリを実行しています。現在、200 MB/sのディスクIOでボトルネックになっています。
これらのクエリは、92GBのRAMを搭載したマシンで実行しています。基本的に、実行前にテーブル全体をRAMにロードするようにSQLに指示するSQLヒントをクエリに書き込むことができますか?
何かのようなもの:
(ramdisk)を使用してmyTableから*を選択します
MSTSQLを使用しています。
いいえ。データベースエンジンは、ページキャッシュに十分なスペースがある場合、これを自動的に実行します。
SQL Server Management Studioを使用して、使用するメモリの量を設定できます。サーバーを右クリックし、メモリオプションを選択して、[最小サーバーメモリ]ボックスに大きな数値を入力します。92ギガバイトのRAMがある場合は、85,000のような数値がおそらく適切です。マシン上のオペレーティングシステムやその他のサービス用に追加のメモリを残す必要があります。
テーブルがメモリに収まると仮定すると、これにより処理が容易になります。それらがメモリに収まらない場合は、別のアプローチを取る必要があるかもしれません。