0

アプリケーションの一部で、条件が満たされたテーブルの最後の ID を取得する必要があります。次に例を示します。

SELECT(MAX) ID FROM TABLE WHERE Num = 2

したがって、テーブル全体を取得して Num = 2 を探してループするか、Num = 2 のテーブルからデータを取得することができます。後者では、最後の項目が MAX ID になることがわかっています。

いずれにせよ、これを約 50 回実行する必要があります...すべてのデータを取得し、データのリストをループして特定の条件を探す方が効率的でしょうか...

または、条件に基づいてデータを数回取得する方がよいでしょうか..リストの最後の項目が最大IDになることがわかっています

クエリの基にする必要がある6つの条件があります

どちらがより効率的か疑問に思っています...約3500個のアイテムのリストを数回ループするか、必要に応じてデータをすでに分解できるデータベースに数回アクセスします

4

3 に答える 3

2

私は SqlServer について話すことができました。Num が渡されるパラメータである StoredProcedure を作成すると、ストアド プロシージャの実行計画での最適化エンジンにより、最高のパフォーマンスが得られます。もちろん、そのフィールドのインデックスは必須です。

于 2012-05-31T15:33:47.407 に答える
0

このテーブルの挿入頻度は高いですか?特にMAX関数を適用する列で、更新頻度が高くなっていますか?答えが「いいえ」の場合は、IS_MAX BIT列を追加し、挿入トリガーを使用して設定することを検討してください。そうすれば、必要な行は基本的にキャッシュされ、検索するのは簡単です。

于 2012-05-31T15:31:53.453 に答える
0

データベースにこの作業をさせてください。それが設計されていることです。

于 2012-05-31T15:28:07.967 に答える