System.Data.Linq.Table<T entity> メソッドのパフォーマンス特性が見つかりません! insertonSubmit や deleteonSubmit などのメソッドを参照します。これらのメソッドは O(1) または O(n) ですか?
2 に答える
InsertOnSubmit
とDeleteOnSubmit
は単一のオブジェクトを取るため、そのパフォーマンスは次のようになります。O(1)
挿入キューに追加するだけで、順序付けされていないすべてのコンテナーに対してO(1)
償却されます。O(1)
InsertAllOnSubmit
DeleteAllOnSubmit
一方、 はメソッドO(N)
に渡されるN
の長さです。IEnumerable
基になるテーブルのサイズに関して O(n) を意味していると思いますが、関数を呼び出すだけでなく、送信されたら話していると思います (前述の O(1) です)。私は LINQ の実装を見たことがありませんが、その経験と SQL の理解から、挿入メソッドは既存のテーブルに関して O(n) であり、方法に関して O(n) である必要があります。多くの提出物があります。
すべてが一度に送信されるため、トランザクション、または挿入ステートメントの結合であると想定しています。つまり、最初の挿入のみが O(n) を受け、残りは O(1) になります。
O(n) よりも早く delete ステートメントを実行する方法はないと思うので、それくらいの時間がかかると思います。
もちろん、LINQ は SQL に変換するだけで、実際の実装はデータベース サーバーに任せているため、これの多くはデータベース サーバー次第です。