私は、SQL Server 2016を使用して税務処理会社に勤務しています。私たちは何百万という税務情報を処理し、並行マルチスレッド、並列処理システムをセットアップします。イベントソーシング/ CQRSクラスターインデックスとパーティショニング
並列処理書き込みイベント・ストアの場合は、クラスタ化索引を有効にする必要がありますか? UniqueIdentifier GUID、または(Unique Identifier GUIDでNcxを持つアイデンティティ(1,1)のクラスタ化されたインデックス)、またはクラスタ化インデックスがない(ヒープを利用する)
通常、イベント・ストア・テーブルの書き込みをパーティション化することをお勧めしますか?
読み込みモデルをクエリ用に更新する場合、読み込みモデルを更新するために並列処理を使用する必要がありますか?または、単一ストリームの更新を行う必要がありますか?
また、クラスタ化インデックスは、読み取りイベントモデルのUniqueIdentifierGuidまたは(UniqueIDifier GUIDのNcxを持つIdentity(1,1)のClusteredインデックス)にする必要がありますか?
私たちは読み込みモデルテーブルまたは他の方法を分割する必要がありますか?
uniqueidentifierguidsに索引が悪いクラスタ化インデックスされている一般的なルールがあり、大規模なページの断片化、遅くioは書き込み、大きなディスクスペースを引き起こします。 https://blogs.msdn.microsoft.com/sqlserverfaq/2010/05/27/guid-vs-int-debate/
しかし、アイデンティティ(1,1)整数列のインデックスは、ラッチ競合を引き起こし、最後のページは並列処理で「ホットスポット」を挿入します。 http://www.sqlpassion.at/archive/2014/04/15/an-ever-increasing-clustered-key-value-doesnt-scale/
こんにちはダニエル、答えはよさそうだ最も、一度に、私はテーブルに並列、マルチスレッドでのインサートを書くことになりますPROBので、私は「並行して、ディスクへの書き込み」されます – AppleBook89
@BlueCar多くのスレッドをファイルに書き込むことはできますが、そのドライブが並行書き込みをサポートしていない限り、それはわかりませんが、並行して挿入を行うことはシリアル書き込みより速くはありません。 –