0

多くのオンライン ブログで、並列処理はデータ ウェアハウス システム向けであり、OLTP システム向けではないという提案を目にします。多くの専門家は、OLTP 環境で並列処理の最大次数を 1 に設定して、並列処理をオフにすることを提案しています。私はそのような提案の根拠を見つけようとしていますが、私の推測では、OLTP システムは CPU をビジー状態に保つ多くの同時要求にさらされているためです。クエリ オプティマイザーで使用される並列処理は、オーバーヘッドになる可能性があります。

ただし、パラレルリムは恩恵になる可能性はありません。リクエストを複数のスレッドで処理できるようにすることで、クエリの処理時間を短縮しています。

並列処理をより深く掘り下げようとしています。OLTP システムでの並列処理に関する提案。

4

2 に答える 2

1

SQL Server は、負荷の高いクエリに対してのみ並列処理を導入します。通常の OLTP クエリはまったく影響を受けません。

実行中のワークロードとその設定がワークロードに与える影響を正確に理解せずに、グローバルな MaxDOP 設定を慎重に操作してください。

于 2012-05-29T13:53:26.203 に答える
1

OLTP では、通常、挿入は小さくて高速なトランザクションであり、場合によってはログに記録されない操作でさえあります。

ここでも OLTP では、クエリは典型的なポイント クエリであり、クエリが単一の行または非常に小さな行セットを返すことを意味します。古いデータは OLTP システムが対象とするものではないため、通常、OLTP データベースはメモリ (テーブルとインデックスの両方) に含めることができます。

ほとんどの人は、OLTP データベースで DSS タイプのクエリを実行しません。追加のインデックス、ディスク I/O などにより、キャッシュ/タスクの切り替えが混乱し、OLTP のパフォーマンスが低下する可能性があります。これは、よりレイテンシーに基づいています。

データ ウェアハウス タイプの処理を行う場合、データの範囲、1 日の流れ、1 週間、1 か月、1 年などの平均を調べます。これが、並列クエリが意味を持つところです。問題を分解し、それらをワーカー スレッドに渡し、結果をマージします。

実際のメリットを得るには、パーティショニング、マルチコア / マルチプロセッサ CPU、適切なディスク コントローラ / パス、RAID アレイ、キャッシュ フロント ディスク ストレージ (EMC など) などの設定が必要です。これらは、2 つの完全な問題セット用に設計されています。

于 2012-05-29T13:53:47.643 に答える