2

私は現在 100000 レコードを含むテーブルに取り組んでおり、今後ますます増える予定です。現在、クライアントは最新のトップ 10 レコードを求めています...

top句を使用するとパフォーマンスが低下します。これはモバイルアプリケーションであるため、パフォーマンスが唯一の懸念事項です。最新のトップ10レコードを取得するための代替および最良の方法はありますか?

これら2つは最高のパフォーマンスの代替手段を持っていますか..

4

2 に答える 2

6

TOP 句を使用すると、日付フィールド (または最新の 10 を識別するために使用しているフィールド) に適切なインデックスがないという理由だけでパフォーマンスが低下します。次のようなクエリの場合:

SELECT TOP 10 OrderID, OrderDate, TotalPrice, Shipping, Status
FROM CustomerOrder
ORDER By OrderDate DESC

(理想的には)次のインデックスが必要です。

(OrderDate, OrderID) INCLUDE (TotalPrice, Shipping, Status)
于 2011-09-20T20:31:32.963 に答える
3

最良の選択肢は、最新の 10 件のレコードがある別のテーブルを使用することだと思います。

したがって、アプリがレコードを挿入するときは、両方のテーブルに記録する必要があります...大きなテーブルとトップ 10 のテーブルです。または、この作業を行うトリガーを実行することもできます。

于 2011-09-20T20:24:54.837 に答える