私は現在 100000 レコードを含むテーブルに取り組んでおり、今後ますます増える予定です。現在、クライアントは最新のトップ 10 レコードを求めています...
top句を使用するとパフォーマンスが低下します。これはモバイルアプリケーションであるため、パフォーマンスが唯一の懸念事項です。最新のトップ10レコードを取得するための代替および最良の方法はありますか?
これら2つは最高のパフォーマンスの代替手段を持っていますか..
私は現在 100000 レコードを含むテーブルに取り組んでおり、今後ますます増える予定です。現在、クライアントは最新のトップ 10 レコードを求めています...
top句を使用するとパフォーマンスが低下します。これはモバイルアプリケーションであるため、パフォーマンスが唯一の懸念事項です。最新のトップ10レコードを取得するための代替および最良の方法はありますか?
これら2つは最高のパフォーマンスの代替手段を持っていますか..
TOP 句を使用すると、日付フィールド (または最新の 10 を識別するために使用しているフィールド) に適切なインデックスがないという理由だけでパフォーマンスが低下します。次のようなクエリの場合:
SELECT TOP 10 OrderID, OrderDate, TotalPrice, Shipping, Status
FROM CustomerOrder
ORDER By OrderDate DESC
(理想的には)次のインデックスが必要です。
(OrderDate, OrderID) INCLUDE (TotalPrice, Shipping, Status)
最良の選択肢は、最新の 10 件のレコードがある別のテーブルを使用することだと思います。
したがって、アプリがレコードを挿入するときは、両方のテーブルに記録する必要があります...大きなテーブルとトップ 10 のテーブルです。または、この作業を行うトリガーを実行することもできます。