0

SQL 2014 のメモリ テーブルでテストしていますが、特定のクエリの実行プランが tempdb で並べ替えを示しています。

ここに画像の説明を入力

クエリには、メモリ内の 2 つのテーブル (両方のテーブルに非クラスター化インデックスがあるフィールド) 間の結合と、いくつかの合計とカウントを持つグループ化があります。サーバーには十分な RAM が用意されています。

テーブルが「メモリ内」の場合、クエリが tempdb でソートされるのはなぜですか?

また、「インデックスの作成」ステートメントがメモリテーブルで許可されていない場合、SQLがインデックスを作成することを提案しているのはなぜだろうかと思っています。

4

2 に答える 2

1

データはメモリに格納されている可能性がありますが、クエリ プロセッサは、オプティマイザによる不十分な見積もりの​​ために並べ替え演算子に必要なメモリがこれを超えた場合、実際にクエリを実行するためにメモリ許可で与えられたメモリしか使用できません。ディスクベースのテーブルを使用するクエリと同じようにスピルします。

于 2016-02-22T11:51:12.140 に答える