SQLをSSDよりも高速にメモリから実行していますか?


12

最近、私たちはこれまでに知っている1つのクエリでOracleデータベースがロックアップする問題を抱えています。

起こっていることの内訳をお伝えしますが、実際には私の質問とはあまり関係ありませんが、提案は受け付けています。

断続的に、それがいつ発生するのかがわかりません。過去1か月に4回発生し、ユーザーがアプリケーション内の何かをクリックします。ユーザーがクリックしているものはまだ不明です。クリックすると、約70万行を生成するデータベースでクエリが実行されます。

クエリが実行されているテーブルをチェックしました。インデックスは適切に見えます。

データベースは60GBで、サーバーには32GBがあります。

データベースサーバーのログから、高いI / Oが表示されますが、CPUとRAMは同じままです。

1つのアプリケーションサーバー、CPUは約75%まで上がります。ワーカープロセスとPIDを見つけることはできますが、ワーカープロセスに関連付けられているPIDを強制終了すると、CPUが短時間停止し、その後すぐに元に戻ります。

また、アプリケーションプールをリサイクルし、IISを再起動しても同じことが行われ、CPUが短時間停止した後、すぐに元に戻ります。

サーバーを元の状態に戻すためにできる唯一のことは、再起動です。

したがって、このクエリがロックアップの原因である場合の私の提案は、データベースをキャッシュしてメモリが不足するように、ボックスのメモリを増やすことができます。これは一度聞いたことがありますが、本当かどうかはわかりません。

ストレージは3層のHP PAR 3であり、データベースはほとんどSSD層にあります。

どちらが高速なSSDまたはメモリですか

回答:


6

どちらが高速なSSDまたはメモリですか

DRAMはNANDフラッシュよりも高速です。RAMアクセスは約100 nsで、SSDは約16,000 nsでランダムに読み取ります。すべてのプログラマーが知っておくべきレイテンシー番号

何が起こっているのか、なぜ起こっているのかを体系的に分析する必要があります。別のシステムについて間接的に何かを聞いたからといって、物事を変えないでください。このシステムの問題を見つけます。

幸いなことに、DBMSシステムにはパフォーマンスツールが備わっている傾向があります。Oracleおよびその他のRDBMSはEXPLAIN PLAN、完全スキャンおよびその他の非効率性を示さなければなりません。クエリはインデックスを使用してもひどく実行できます。ボトルネックを見つけるためのOracle AWRなどのシステムパフォーマンスレポートもあります。DBのパフォーマンスについてさらに問い合わせたい場合は、姉妹サイト/dba//に問い合わせることもでき ます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.